gpt4 book ai didi

r - 检查列表中的列是否为 na

转载 作者:行者123 更新时间:2023-12-04 09:45:17 25 4
gpt4 key购买 nike

我正在尝试检查列表中的任何数据框是否有一列包含所有条目 NA。

我试过这个 lapply(df,function(x)all(is.na(df)))并且可以很好地检查所有列。我如何检查以下列表中的第一列是否为 NA。

我试过 lapply(df[,1],function(x)all(is.na(df[,1])))但这不是正确的做法

[[1]]
ID Mas5.SignalIntensity DetectionCalls P.value
1 1007_s_at 3242.90209 P 0.000218932
2 1053_at 377.81481 P 0.017000453
3 117_at 114.88743 A 0.066864977
4 121_at 8739.03257 P 0.000218932


[[2]]
ID Mas5.SignalIntensity DetectionCalls P.value
1 NA 134.40764 P 0.000561751
2 NA 453.34875 P 0.002227740
3 NA 706.34996 A 0.066864977
4 NA 102.51459 A 0.089405078

[[3]]
ID Mas5.SignalIntensity DetectionCalls P.value
1 1007_s_at 7015.297075 P 0.000218932
2 1053_at 677.459859 P 0.011447358
3 117_at 180.568654 A 0.267462560
4 121_at 1693.426847 P 0.006531992
5 1255_g_at 181.221325 A 0.339557900

最佳答案

尝试

 sapply(lst, function(x) any(colSums(!is.na(x))==0))
#[1] TRUE FALSE TRUE

更新

如果要检查特定列,例如第 2 栏
sapply(lst, function(x) all(is.na(x[,2])))
#[1] FALSE FALSE TRUE

或者
sapply(lst, function(x) sum(!is.na(x[,2]))==0)
#[1] FALSE FALSE TRUE

数据
 df <- data.frame(col1= NA, col2=1:5, col3=c(1:3,NA, NA))
df1 <- data.frame(col1=1:5, col2=6:10, col3=11:15)
df2 <- data.frame(col1=c(NA,2), col2= NA, col3=c(2,4))
lst <- list(df, df1, df2)

关于r - 检查列表中的列是否为 na,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31071932/

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