【发布时间】:2014-06-15 13:23:07
【问题描述】:
我对 R 还是很陌生,并且真的觉得它很强大。我正在尝试创建具有多个级别的数据框。我有 3 组(科目),称为“group1”、“group2”和“group3”,每组有 19 个测试(名称无关紧要)。在这 19 个测试中,我感兴趣的 7 个组件中有 3 个称为 b1、b2 和 b3。
到目前为止我尝试了什么:对于每个患者,19 次测试形成 19 列和 7 行(组件)因此,我感兴趣的组件对于 19 次测试中的每一项都是 5、6、7:
sapply(x, '[', XXX, j)
我的最终代码是:
for (j in 1:19) {
x = lapply(c('group1', 'group2', 'group3'), function(i) {
filenames = dir(file.path('c:/19/7', i),
pattern = 'sRL.txt', full.names = T)
x = lapply(filenames, read.table, sep = '')
bb1 = sapply(x, '[', 5, j)
bb2 = sapply(x, '[', 6, j)
gg = sapply(x, '[', 7, j)
pcode = as.numeric(gsub('_.*', '', basename(filenames)))
data.frame(group = i, tests= j, pcode, b1= bb1, b2= bb2, g = gg)
})
}
您能否建议如何创建一个漂亮的数据框,将每个组的每个主题的 19 个测试中的 5、6、7 个组件组合在一起?
【问题讨论】:
-
欢迎来到 SO。您能否提供一些示例数据来运行您的代码并轻松理解从输入到输出的转换?看看how to make a great reproducible example。