【问题标题】:Reduce two rows into a single row in R [duplicate]在R中将两行减少为一行[重复]
【发布时间】:2016-06-29 18:39:59
【问题描述】:

我有这样的情况:

df<-data.frame(A=c(1, NA), B=c(NA, 2), C=c(3, NA), D=c(4, NA), E=c(NA, 5))
df
   A  B  C  D  E
1  1 NA  3  4 NA
2 NA  2 NA NA  5

我想要的是,以所有 length(!is.na(df$*))==1 为条件,将 df 减少为:

df
   A  B  C  D  E
 1 1  2  3  4  5

【问题讨论】:

  • colSums(df, na.rm = TRUE) 有用吗?它没有进行您提到的 NA 检查,但根据您提供的示例数据不确定这是否是绝对必须具备的。

标签: r


【解决方案1】:

只要结果行相等,就可以使用:

dfNew <- do.call(data.frame, lapply(df, function(i) i[!is.na(i)]))

导致

dfNew
A B C D E
1 1 2 3 4 5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-29
    • 1970-01-01
    • 2021-11-27
    • 2022-10-06
    • 2011-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多