【发布时间】:2020-02-04 05:00:38
【问题描述】:
我有一个包含 1365 列的大型数据框,如示例所示:
df <- data.frame(X1 = c(7.48, 7.59), Y1 = c(49.16, 48.70), ID1 = c("B_1", "B_1_2"), TI1 = c(191.31, 1349.93),
X2 = c(8.15, 8.06), Y2 = c(48.40, 48.18), ID2 = c("B_1", "B_1_2"), TI2 = c(191.39, 1349.97),
X3 = c(8.80, 8.87), Y3 = c(47.65, 47.20), ID3 = c("B_1", "B_1_2"), TI3 = c(191.48, 1350.05))
现在我想将此数据框拆分为一个数据框列表(即此列表中的三个数据框;12/4 = 3)。预期的列表如下所示:
dflist[[1]]
X1 Y1 ID1 TI1
7.48 49.16 B_1 191.31
7.59 48.70 B_1_2 1349.93
dflist[[2]]
X2 Y2 ID2 TI2
8.15 48.40 B_1 191.39
8.06 48.18 B_1_2 1349.97
dflist[[3]]
X3 Y3 ID3 TI3
8.80 47.65 B_1 191.48
8.87 47.20 B_1_2 1350.05
我想根据每个数据帧的第 4 列重新排列(按升序)列表的每个数据帧中的数据
首先将数据框转换为列表,我使用了以下代码但不起作用
n <- seq(1,12, by = 4)
my_data <- list()
for (i in 3) {
for (j in seq(1, 12, by = 4)) {
my_data[[i]] <- df3[, j:j+3]
}
}
使用以下代码对列表进行排序:
dflist1 <- lapply(dflist, function(1){
1[with(dflist, order[, 4]), ]
})
寻找代码来获得如上所示的预期输出(dflist)
【问题讨论】:
-
包含每个原始“数据集”的堆叠数据集是否也是可接受的输出?如果是这样,你可以像
reshape(df, varying=TRUE, sep="", direction="long")一样重塑?
标签: r dataframe data-manipulation