如何识别数据帧中哪些列不是每行的“NA”? [英] How to identify which columns are not “NA” per row in a dataframe?
本文介绍了如何识别数据帧中哪些列不是每行的“NA”?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是与How to identify which columns are not "NA" per row in a matrix?相同的问题,但针对的是数据帧而不是矩阵。
我有一个205行62列的数据帧。我想为值不是NA的每一行标识列名。例如:
col1 col2 col3 col4 col5 col6
row1 NA NA NA NA fact fact
row2 num num NA NA NA NA
row3 num num NA NA int int
row4 NA NA NA NA fact fact
row5 NA NA int int NA NA
row6 NA NA int NA NA NA
结果应为:
row1 col5;col6
row2 col1;col2
row3 col1;col2;col5;col6
row4 col5;col6
row5 col3;col4
row6 col3
理想情况下,应将结果作为附加列添加到数据框中。
推荐答案
循环各行,使用获取非NA列的列名,然后粘贴:
d$myCol <- apply(d, 1, function(i) paste(colnames(d)[ !is.na(i) ], collapse = ","))
这篇关于如何识别数据帧中哪些列不是每行的“NA”?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文