gpt4 book ai didi

r - 拆分后的数据框列名称

转载 作者:行者123 更新时间:2023-12-04 10:30:47 26 4
gpt4 key购买 nike

执行以下代码时

data <- data.frame( A = c("foo", "foo", "bar", "bar"),
B = c("foo","bar", "foo", "bar"),
C = c("bla", "foo", "bla", "bar"),
D = c(1, 2, 3, 4 ),
E = c(5, 6, 7, 8 ))

ds <- split(data, list(data$A, data$B, data$C), drop=TRUE)
write.table(ds[1], file="foo.csv", append=FALSE, row.names=FALSE)

foo.csv 看起来像这样:

 "bar.bar.bar.A","bar.bar.bar.B","bar.bar.bar.C","bar.bar.bar.D","bar.bar.bar.E"
"bar","bar","bar",4,8

即,列名包含用于拆分的列的内容。如何以通用方式将名称更改回原始名称? (我不想分配列名称,如“A”、“B”、....)

最佳答案

split 的输出是一个列表ds[1] 返回一个 list,而 ds[[1]] 返回第一个列表项中的值。

例子:

ds[1]
# $bar.bar.bar
# A B C D E
# 4 bar bar bar 4 8

ds[[1]]
# A B C D E
# 4 bar bar bar 4 8

要将输出正确写入 CSV 文件,您需要提取实际的 data.frame,因此您需要使用 ds[[1]]方法。

write.table(ds[[1]], file="foo.csv", append=FALSE, row.names=FALSE)

如果你想将所有的 data.frame 写入单独的 CSV 文件,你可以这样做:

lapply(names(ds), function(x) {
write.table(ds[[x]], file = paste(x, ".csv", collapse = ""),
append = FALSE, row.names = FALSE)
})

这将在您的工作目录中创建四个 CSV 文件(名为 bar.bar.bar.csv、bar.foo.bla.csv、foo.foo.bla.csv 和 foo.bar.foo.csv)。

关于r - 拆分后的数据框列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19134762/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com