如何从R中的逐行名称列表中同时删除多行?
我有一个100个矩阵的列表,我需要删除列表中每个矩阵中的多行如何从R中的逐行名称列表中同时删除多行?,r,list,R,List,我有一个100个矩阵的列表,我需要删除列表中每个矩阵中的多行 [[99]] x y z [1,] 40.614014 -0.419043 2.358242 [2,] 40.750373 0.060505 -2.043480 [3,] 26.927057 -6.738943 0.920763 [4,] 27.508456 6.472744 0.625628 [5,] -35.356189 -9.982903
[[99]]
x y z
[1,] 40.614014 -0.419043 2.358242
[2,] 40.750373 0.060505 -2.043480
[3,] 26.927057 -6.738943 0.920763
[4,] 27.508456 6.472744 0.625628
[5,] -35.356189 -9.982903 2.070342
[6,] NA NA NA
[7,] 14.443243 -7.074174 1.263049
[8,] 1.972223 -7.739286 1.546097
[9,] -10.520837 -8.039801 1.702196
[10,] -22.998039 -8.577798 1.804459
[11,] NA NA NA
[12,] -19.796859 0.134456 -3.754037
[13,] NA NA NA
[14,] NA NA NA
[15,] NA NA NA
[16,] NA NA NA
[17,] 5.715001 0.014768 -5.151677
[18,] -0.223313 -3.261829 -4.483909
[19,] -6.794073 -0.090648 -5.349939
[20,] -0.176161 3.251524 -5.227120
[21,] NA NA NA
[22,] NA NA NA
[23,] NA NA NA
[24,] NA NA NA
[25,] 29.436459 0.077276 -3.853158
[26,] 17.757341 0.162857 -4.573970
[27,] -14.035571 -0.022803 -5.535868
[28,] 14.443242 7.245918 1.263049
[29,] 14.443244 0.000001 5.730853
[30,] 14.443245 -0.000001 -4.752353
[31,] -29.435556 -5.619648 0.549797
例如,我想删除除第3、5、7、8、9、10行以外的所有行
我试过这个:
lapply(lst, `[`, -11,)
但是无法让它一次执行多行,并且考虑到它每次都会更改行名称,因此每次都将其应用到我想要保留的行的末尾会变得很混乱
我为数据帧找到了以下内容:
myData[-c(2, 4, 6), ]
有类似的清单吗
此外,是否可以删除列表中包含单个NA的所有矩阵?一旦我将矩阵减少到我想要的行,我需要消除所有缺少数据的矩阵
谢谢大家的帮助 最后我们需要一个
,
out1 <- lapply(lst, `[`, -c(2, 4, 6), )
out1只需使用一个匿名函数lappy(lst,函数(x)x[-c(2,4,6),])
@M--,我同意。我参考了这一点,并在我的问题中使用了答案,但我对基本语法的混淆导致我要求更多的澄清。欢迎这样做。别担心。我们只是做了一些适度的调整,以保持社区的可访问性。希望能见到你,可能很快就能回答问题。干杯
out2 <- lapply(lst, function(x) x[-c(2, 4, 6),])
identical(out1, out2)
#[1] TRUE
set.seed(24)
lst <- list(matrix(rnorm(30), 6, 5), matrix(rnorm(30), 6, 5))