如何识别数据帧中哪些列不是每行的“NA”? [英] How to identify which columns are not “NA” per row in a dataframe?

查看:8
本文介绍了如何识别数据帧中哪些列不是每行的“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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆