如何在 R 向量中去除开头和结尾的零?
要删除 R 向量中开头和结尾的零,我们可以使用 min 和 max 函数访问除 0 之外的值,然后使用单个方括号进行子集选择。例如,如果我们有一个名为 x 的向量,那么我们可以使用以下命令删除开头和结尾的零:
x[min(which(x!=0)):max(which(x!=0))]
示例
x1<-c(rep(0,10),rpois(50,1),rep(0,10)) x1
输出
[1] 0 0 0 0 0 0 0 0 0 0 0 0 1 0 3 0 0 1 1 0 0 0 0 1 0 0 1 0 0 4 2 1 0 0 0 0 0 0 [39] 1 0 2 0 0 2 4 1 1 0 2 0 0 1 2 1 1 0 3 0 1 0 0 0 0 0 0 0 0 0 0 0
示例
x1[min(which(x1!=0)):max(which(x1!=0))]
输出
[1] 1 0 3 0 0 1 1 0 0 0 0 1 0 0 1 0 0 4 2 1 0 0 0 0 0 0 1 0 2 0 0 2 4 1 1 0 2 0 [39] 0 1 2 1 1 0 3 0 1
示例
x2<-c(rep(0,20),rpois(150,1),rep(0,20)) x2
输出
[1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 3 2 2 1 3 0 2 3 1 [38] 2 0 1 0 1 0 0 1 2 3 1 2 1 3 1 1 0 2 0 0 1 4 1 1 0 0 0 0 0 0 0 1 2 3 0 1 2 [75] 0 1 1 0 0 1 2 0 2 2 0 1 1 0 1 2 1 2 0 1 1 7 0 3 3 1 0 2 1 1 0 0 1 0 0 1 0 [112] 2 0 1 1 0 2 3 0 1 1 0 1 1 1 2 0 0 1 1 1 1 2 1 1 1 1 0 1 0 0 0 1 1 1 0 1 0 [149] 3 0 2 2 1 0 2 0 1 1 2 0 1 3 1 1 1 0 0 1 2 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [186] 0 0 0 0 0
示例
x2[min(which(x2!=0)):max(which(x2!=0))]
输出
[1] 1 0 1 1 1 0 1 3 2 2 1 3 0 2 3 1 2 0 1 0 1 0 0 1 2 3 1 2 1 3 1 1 0 2 0 0 1 [38] 4 1 1 0 0 0 0 0 0 0 1 2 3 0 1 2 0 1 1 0 0 1 2 0 2 2 0 1 1 0 1 2 1 2 0 1 1 [75] 7 0 3 3 1 0 2 1 1 0 0 1 0 0 1 0 2 0 1 1 0 2 3 0 1 1 0 1 1 1 2 0 0 1 1 1 1 [112] 2 1 1 1 1 0 1 0 0 0 1 1 1 0 1 0 3 0 2 2 1 0 2 0 1 1 2 0 1 3 1 1 1 0 0 1 2 [149] 5
示例
x3<-c(rep(0,20),rpois(150,8),rep(0,20)) x3
输出
[1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 5 6 8 5 [26] 11 6 7 7 15 5 15 12 9 5 5 5 6 4 10 10 5 5 5 8 3 12 6 7 12 [51] 8 13 8 6 12 11 15 6 12 9 9 3 3 6 7 7 11 6 3 5 12 11 6 6 13 [76] 8 8 9 9 5 10 9 7 8 6 10 5 10 8 7 8 4 8 10 8 12 3 10 8 7 [101] 7 5 11 18 7 7 9 14 5 12 3 10 6 12 5 3 5 7 8 10 9 3 13 11 10 [126] 6 5 5 9 9 9 7 4 8 5 10 11 3 10 10 10 11 8 12 7 11 10 4 9 3 [151] 5 2 7 8 8 10 9 12 7 12 8 9 7 7 6 13 11 7 6 10 0 0 0 0 0 [176] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
示例
x3[min(which(x3!=0)):max(which(x3!=0))]
输出
[1] 5 5 6 8 5 11 6 7 7 15 5 15 12 9 5 5 5 6 4 10 10 5 5 5 8 [26] 3 12 6 7 12 8 13 8 6 12 11 15 6 12 9 9 3 3 6 7 7 11 6 3 5 [51] 12 11 6 6 13 8 8 9 9 5 10 9 7 8 6 10 5 10 8 7 8 4 8 10 8 [76] 12 3 10 8 7 7 5 11 18 7 7 9 14 5 12 3 10 6 12 5 3 5 7 8 10 [101] 9 3 13 11 10 6 5 5 9 9 9 7 4 8 5 10 11 3 10 10 10 11 8 12 7 [126] 11 10 4 9 3 5 2 7 8 8 10 9 12 7 12 8 9 7 7 6 13 11 7 6 10
示例
x4<-c(rep(0,20),rpois(150,50),rep(0,20)) x4
输出
[1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 39 63 39 53 62 [26] 43 40 41 50 42 48 50 59 52 47 49 49 52 48 54 46 59 43 45 41 57 56 54 48 43 [51] 47 47 53 51 44 54 56 49 55 42 64 48 47 46 47 51 52 32 39 49 47 59 39 50 54 [76] 46 52 46 61 40 58 56 50 56 66 55 60 54 56 39 55 41 50 53 56 51 53 52 53 50 [101] 58 43 42 42 53 54 50 59 53 47 61 47 62 62 45 60 45 49 59 46 57 48 55 55 47 [126] 47 61 55 55 50 61 45 60 52 51 32 47 47 61 43 42 61 58 44 51 55 46 51 46 42 [151] 40 43 54 41 63 52 48 41 43 70 47 55 45 54 47 57 56 54 53 49 0 0 0 0 0 [176] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
示例
x4[min(which(x4!=0)):max(which(x4!=0))]
输出
[1] 39 63 39 53 62 43 40 41 50 42 48 50 59 52 47 49 49 52 48 54 46 59 43 45 41 [26] 57 56 54 48 43 47 47 53 51 44 54 56 49 55 42 64 48 47 46 47 51 52 32 39 49 [51] 47 59 39 50 54 46 52 46 61 40 58 56 50 56 66 55 60 54 56 39 55 41 50 53 56 [76] 51 53 52 53 50 58 43 42 42 53 54 50 59 53 47 61 47 62 62 45 60 45 49 59 46 [101] 57 48 55 55 47 47 61 55 55 50 61 45 60 52 51 32 47 47 61 43 42 61 58 44 51 [126] 55 46 51 46 42 40 43 54 41 63 52 48 41 43 70 47 55 45 54 47 57 56 54 53 49
示例
x5<-c(rep(0,20),rpois(150,200),rep(0,20)) x5
输出
[1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [19] 0 0 191 203 207 200 173 206 226 195 210 181 196 210 227 198 211 212 [37] 193 214 204 212 220 171 218 209 219 201 191 179 207 197 181 204 195 213 [55] 202 202 206 173 211 202 219 191 206 184 225 204 219 200 221 183 186 202 [73] 211 200 199 214 180 186 211 215 212 213 225 199 206 189 228 206 221 176 [91] 194 200 185 182 213 182 186 178 216 204 211 178 195 212 210 222 185 192 [109] 229 203 234 204 197 200 189 176 197 195 198 204 195 208 195 178 203 227 [127] 196 197 200 187 200 178 210 213 204 194 213 211 202 225 185 201 165 223 [145] 218 214 205 205 191 198 228 195 189 212 211 163 178 194 198 171 187 191 [163] 208 202 192 195 213 186 194 187 0 0 0 0 0 0 0 0 0 0 [181] 0 0 0 0 0 0 0 0 0 0
示例
x5[min(which(x5!=0)):max(which(x5!=0))]
输出
[1] 191 203 207 200 173 206 226 195 210 181 196 210 227 198 211 212 193 214 [19] 204 212 220 171 218 209 219 201 191 179 207 197 181 204 195 213 202 202 [37] 206 173 211 202 219 191 206 184 225 204 219 200 221 183 186 202 211 200 [55] 199 214 180 186 211 215 212 213 225 199 206 189 228 206 221 176 194 200 [73] 185 182 213 182 186 178 216 204 211 178 195 212 210 222 185 192 229 203 [91] 234 204 197 200 189 176 197 195 198 204 195 208 195 178 203 227 196 197 [109] 200 187 200 178 210 213 204 194 213 211 202 225 185 201 165 223 218 214 [127] 205 205 191 198 228 195 189 212 211 163 178 194 198 171 187 191 208 202 [145] 192 195 213 186 194 187
广告