我在R中有一个类似于
data.frame(ID = c(1,1), a = c(1, NA), b = c(NA, 2), c = c(NA, 3))
字符串所以行是互斥的。也不是说有些列是字符。我需要的是每个ID只有一行。我如何才能做到这一点?
qnakjoqk1#
df <- data.frame(ID = c(1,1), a = c(1, NA), b = c(NA, 2), c = c(NA, 3)) suppressPackageStartupMessages(library(dplyr)) df %>% summarise(across(everything(), \(x) x[!is.na(x)]), .by = ID) #> ID a b c #> 1 1 1 2 3
字符串创建于2023-10-31使用reprex v2.0.2
m1m5dgzv2#
希望一个基本的R技巧可以帮助
> aggregate(. ~ ID, df, na.omit, na.action = na.pass) ID a b c 1 1 1 2 3
字符串或
> list2DF(as.list(colMeans(df, na.rm = TRUE))) ID a b c 1 1 1 2 3
型或
> data.frame(t(colMeans(df, na.rm = TRUE))) ID a b c 1 1 1 2 3
型
6bc51xsx3#
我们可以discardNAs,在一个操作中分组.byID
discard
NAs
.by
ID
library(dplyr) library(purrr) df |> summarise(across(everything(), \(x) discard(x, is.na)), .by = ID) a b c 1 1 2 3
字符串
3条答案
按热度按时间qnakjoqk1#
字符串
创建于2023-10-31使用reprex v2.0.2
m1m5dgzv2#
希望一个基本的R技巧可以帮助
字符串
或
型
或
型
6bc51xsx3#
我们可以
discard
NAs
,在一个操作中分组.by
ID
字符串