我有一个包含多行和多列的数据框.
我有一个字符向量,其中包含数据框中某些列的名称.列数可以变化.
对于每一行,对于每个列,我必须确定其中一个是否不是NA. (基本上是每条线的任何(!is.na(df [namecolumns])),然后为那些为TRUE的子集做一个子集.
实际上,任何(!is.na(df [1,] [namescolumns]))都运行良好,但它只适用于第一行.
我可以很容易地做一个for循环,这是我作为程序员的第一反应,因为它适用于第一行,但我确定它不是R方式,并且有一种方法可以用“apply”( lapply,mapply,sapply,tapply或其他),但我无法弄清楚哪一个以及如何.
谢谢.
最佳答案 尝试在第一维(行)上使用apply:
apply(df, 1 function(x) any(!is.na(x[namescolumns])))
结果将返回转置,因此,您可能希望将整个语句包装在t(.)中