gpt4 book ai didi

r - 将具有 1000 列的 data.frame/file 中的两列连接到新 data.frame/file 中的一列

转载 作者:行者123 更新时间:2023-11-29 09:43:26 25 4
gpt4 key购买 nike

在我的问题中,我提到了 data.frame 或文件。这意味着,我会接受 R 和 bash 的解决方案。让我们来解决我的问题。

我有一个 df/文件,它有大约 1000 列和 100000 行。我的任务是从这个 df/file 中取出一个新文件,其中 df1 中的两列合并为一列并用“/”分隔。棘手的是,我希望所有列都这样。为了更清楚,这里有一个例子:

10 列的 df1

a b c d s f r t g g
f j g k r k d a f l
f p j h g i t b k k
h j l u z b g b d h

我想要的是以下内容:5 列的 df2

a/b c/d s/f r/t g/g
f/j g/k r/k d/a f/l
f/p j/h g/i t/b k/k
h/j l/u z/b g/b d/h

我知道我可以合并两列,用“/”分隔并使用函数粘贴。但不幸的是,我不知道如何将它用于多列。也许可以使用“for 循环”?

我可以想象对于 bash,awk 是解决方案,但我不知道它如何正确工作。因为我有非常大的文件,所以我猜 bash 是更快的方法。

在此先感谢您对我的帮助。

最好的,托比

最佳答案

你可以试试

df1 <- df[c(TRUE,FALSE)]
df2 <- df[c(FALSE,TRUE)]
as.data.frame(mapply(paste, df1, df2, sep="/"))
# V1 V3 V5 V7 V9
#1 a/b c/d s/f r/t g/g
#2 f/j g/k r/k d/a f/l
#3 f/p j/h g/i t/b k/k
#4 h/j l/u z/b g/b d/h

或者你可以做

as.data.frame(`dim<-`(paste(as.matrix(df1), 
as.matrix(df2), sep="/"), dim(df1)))

关于r - 将具有 1000 列的 data.frame/file 中的两列连接到新 data.frame/file 中的一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28113572/

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