gpt4 book ai didi

r - 通过 ID(不是行号)和列名识别数据框中 NA 值的位置

转载 作者:行者123 更新时间:2023-12-01 18:42:56 25 4
gpt4 key购买 nike

我有一项调查,其中一些参与者没有回答一些问题。这是我的数据的简化版本

df <- data.frame(ID = c(12:16), Q1 = c("a","b","a","a",NA), 
Q2 = c("a","a",NA,"b",NA), Q3 = c(NA,"a","a","a","b"))
df

我想看看哪些 ID 号码没有回答哪些问题。以下代码非常接近我想要的输出,但通过行号标识主题 - 我希望通过 ID 号标识主题

table(data.frame(which(is.na(df), arr.ind=TRUE)))

现在,输出显示第 1、3、5 行没有回答至少一个问题,并且它标识了具有缺失值的列。我希望它能向我展示同样的内容,但 ID 号为 12、14、16。如果您可以在输出中包含列名称(例如 Q1、Q2、Q3)而不是列号,那就太好了。

最佳答案

我们可以使用 apply 获取逐行 NA 的列 names ,并将其转换为逗号分隔的字符串并将其附加到一个新的数据帧及其 ID

new_df <- data.frame(ID =df$ID, ques = apply(df, 1, function(x) 
paste0(names(which(is.na(x))), collapse = ",")))

new_df

# ID ques
#1 12 Q3
#2 13
#3 14 Q2
#4 15
#5 16 Q1,Q2
<小时/>

类似的等价物是

new_df <- data.frame(ID = df$ID, ques = apply(is.na(df), 1, function(x) 
paste0(names(which(x)), collapse = ",")))

关于r - 通过 ID(不是行号)和列名识别数据框中 NA 值的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50868646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com