我有一组来自Matlab的数据,我想在R中使用它。我有一组主题,以及每个主题中的一组条件。在每种情况下,每个受试者产生一些数据。我把它写成了一个高大的"表,像这样:
subject condition data
#1 id1 cond1 c(0.12, 0.43)
#2 id1 cond2 c(1.26)
#3 id2 cond1 c(1.96)
#4 id2 cond2 c(0.24, 0.62)
...
正如您所看到的,问题在于每个主题的每个条件中的值数量不同,并且主题中的每个条件中的值数量也不相同。我对这些变量在主题之间的分布感兴趣,所以我希望将原始值保留在一个广泛的列表中。数据框,如下:
TreeMap<String, Info> words = new TreeMap();
这样做的最佳方式是什么?我过去使用过tidyr :: spread(),如果没有每行唯一的识别变量,这里不起作用,但即使我添加了,我也不知道它是如何工作的。
我也尝试过使用dplyr :: group_by(数据,主题,条件),但我不确定如何从那里开始。是否可以使用c()作为汇总函数来汇总分组表...?这对我没用。
一如既往,感谢您的帮助!
答案 0 :(得分:2)
您可以使用aggregate()
创建由数字向量组成的list
列data
。
aggregate(data ~ subject + condition, FUN = list, data = df)
# subject condition data
#1 id1 cond1 0.12, 0.43
#2 id2 cond1 1.96
#3 id1 cond2 1.26
#4 id2 cond2 0.24, 0.62
答案 1 :(得分:0)
library(dplyr)
library(tidyr)
data =
"subject condition data
id1 cond1 0.12
id1 cond1 0.43
id1 cond2 1.26
id2 cond1 1.96
id2 cond2 0.24
id2 cond2 0.62" %>%
read.table(text = ., header = TRUE)
广泛形式:
wide_form =
data %>%
group_by(subject, condition) %>%
mutate(order = 1:n() %>% paste0("value", .)) %>%
spread(order, data)
对于嵌套表单:
nested_form =
data %>%
group_by(subject, condition) %>%
summarize(data = data %>% list)