【发布时间】:2016-10-05 05:36:08
【问题描述】:
我想使用基本 R 函数按列将 data.frame 转换为 data.frames 列表,并保持第一列不变。例如,我想将 DF 拆分为三个 data.frames 的列表,每个数据帧都包含第一列。也就是说,我希望最终得到名为 LONG 的列表,而不必分别输入每个列表元素。谢谢。
DF <- data.frame(OBS=1:10,HEIGHT=rnorm(10),WEIGHT=rnorm(10),TEMP=rnorm(10))
DF
LONG <- list(HEIGHT = DF[c("OBS", "HEIGHT")],
WEIGHT = DF[c("OBS", "WEIGHT")],
TEMP = DF[c("OBS", "TEMP" )])
LONG
SHORT <- as.list(DF)
SHORT
SPLIT <- split(DF, col(DF))
【问题讨论】:
-
关于使用
split.default逐列拆分数据帧:What is the algorithm behind R core'ssplitfunction?