我有一个数据集,其中有多行都对应于基线度量。我想按记录 id 折叠这些行,以便每个人只有一行用于基线测量。这意味着我必须折叠所有变量,其中一些是字符变量。我该怎么做呢?这是我尝试过的:
df.test %>% group_by(id) %>% filter(time == 0) %>%
summarise_all(., collapse=", ")
我正在使用的示例数据框如下所示:
data.frame(id = rep(99, 5), time = c(rep(0, 3), 3, 6), v1 = c("blk", NA, NA, 2, 3), v2 = c(NA, 1, NA, 4, 5), v3 = c(NA, NA, 1, 6, 7))
我需要它看起来像这样:
data.frame(id = rep(99, 3), time = c(rep(0, 1), 3, 6), v1 = c("blk", 2, 3), v2 = c(1, 4, 5), v3 = c(1, 6, 7))
我不知道 summarise 是否适合在这里使用。基本上我遇到的一个问题是字符的总和,我认为这就是为什么汇总不起作用。理想情况下,我真正想做的就是将时间 = 0 的所有行中的信息按 id 组合起来,这样每个唯一 id 都有一行时间 = 0。
(对不起,我不确定如何让 data.frame 命令打印数据框?)
请帮忙!
编辑:示例 2
data.frame(id = c(rep(99,5), 100, 101, 101), time = c(rep(0, 3), 3, 6, 0, 0, 0), character = c(NA, NA, "blk", rep(NA, 5)), binary = c(1, rep(NA, 5), 0, NA), continuous = c(NA, NA, 2.29, rep(NA, 5)))
这与我的数据看起来很接近。我能说的不起作用如下:
1)字符变量丢失 2)二进制变量中的 0 丢失(即使使用 != is.na(.) 而不是 != 0 2a)这是原子的,我将其更改为因子,现在它似乎可以工作3) 连续变量 2.29 丢失了 4) 有趣且此处未显示的是整数值,但似乎保留了非 0 但整数全部消失了——这是因为如果结构是原子的,则整数无法读取?
结论:我认为我需要从 atomic 更改所有值(它们是从 SPSS 以这种方式带入 r 的)?在此期间我会试试这个。
编辑2:问题不是数字与原子。我把所有的数字都变成了数字,整数仍然没有出现。