gpt4 book ai didi

r - 如何根据 R 中的另一个数据框重命名数据框的所有列?

转载 作者:行者123 更新时间:2023-12-04 18:31:53 34 4
gpt4 key购买 nike

我对 R 很陌生。我正在尝试根据另一个数据框重命名数据框的列。

基本上我的数据看起来像

数据帧1

A    B    C   D
1 2 3 4

我还有一张看起来像这样的 table '
数据帧2
Col1    Col2
A E
B Q
C R
D Z

我想根据这个表重命名我的第一个数据框的列,以便它出来:
E    Q    R    Z
1 2 3 4

我正在尝试使用 plyr 库进行循环。这是我试过的命令:
library(plyr)
for (i in names(DataFrame1[,3:336])) #renaming columns 3 to 336
{
rename(DataFrame1,
replace = c(i = DataFrame2[DataFrame2$Col1 == i, 2]))
}

我的想法是对于 DataFrame1 中的每一列,使用 DataFrame2 中的列查找重命名该列。

这会产生 N 行错误“以下 from 值不存在于 x 中:i”,其中 n 是 DataFrame1 中存在的行数

感谢您提供的任何帮助!

最佳答案

A    B    C   D
1 2 3 4

DataFrame1 <- read.table(con <- file("clipboard"), header=T)

Col1 Col2
A E
B Q
C R
D Z

DataFrame2 <- read.table(con <- file("clipboard"), header=T)

colnames(DataFrame1) <- DataFrame2$Col2

如果列名没有像示例中那样按顺序排列,则您必须使用 match :
DataFrame2$Col2[match(names(DataFrame1),DataFrame2$Col1)]

关于r - 如何根据 R 中的另一个数据框重命名数据框的所有列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38625024/

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