根据R中另一个数据帧中的值重命名数据帧列
我有一个数据框,其中有一列和两条记录 DF1= 我有另一个dataframe,它有两列。我需要在第一个数据帧中使用两个值重命名第二个数据帧列 DF2= 我想要DF2如下根据R中另一个数据帧中的值重命名数据帧列,r,dataframe,R,Dataframe,我有一个数据框,其中有一列和两条记录 DF1= 我有另一个dataframe,它有两列。我需要在第一个数据帧中使用两个值重命名第二个数据帧列 DF2= 我想要DF2如下 M_D ABC123 111 345 456 999 谢谢您可以使用$或DF1上的[[运算符访问DF2的列名值。由于OP提到他甚至不知道DF1的列名,因此一个选项可以是: names(DF2) <- DF1[,1] DF2 # M_D ABC123 #1 111 345 #2 456
M_D ABC123
111 345
456 999
谢谢您可以使用
$
或DF1
上的[[
运算符访问DF2
的列名值。由于OP提到他甚至不知道DF1
的列名,因此一个选项可以是:
names(DF2) <- DF1[,1]
DF2
# M_D ABC123
#1 111 345
#2 456 999
#OR
names(DF2) <- DF1[[1]]
#OR
names(DF2) <- DF1$Name
您可以使用
DF1
上的$
或[[
运算符访问DF2
的列名值。由于OP提到他甚至不知道DF1
的列名,因此可以使用以下选项:
names(DF2) <- DF1[,1]
DF2
# M_D ABC123
#1 111 345
#2 456 999
#OR
names(DF2) <- DF1[[1]]
#OR
names(DF2) <- DF1$Name
基于您上面的评论,我建议使用如下内容对其进行硬编码
DF2%
dplyr::重命名(
M_D=PQR,
ABC123=LMN
)
根据我的经验,您不应该真的相信协作者每次都会给您相同的数据集结构。如果他们更改了列名,这将抛出一个错误(这很好,您希望在管道的早期就收到此问题的警告)。如果他们更改了列顺序,dplyr::rename()
将优雅而正确地处理它
考虑其他工具,如或,以验证列特征是否符合您的期望(例如,
PQR
/M_D
列是一个值介于0和5之间的整数)。基于您上面的评论,我建议使用类似的内容对其进行硬编码
DF2%
dplyr::重命名(
M_D=PQR,
ABC123=LMN
)
根据我的经验,您不应该真的相信协作者每次都会给您相同的数据集结构。如果他们更改了列名,这将抛出一个错误(这很好,您希望在管道的早期就收到此问题的警告)。如果他们更改了列顺序,dplyr::rename()
将优雅而正确地处理它
考虑其他工具,如或,以验证列特征是否符合您的期望(例如,
PQR
/M_D
列是一个值介于0和5之间的整数)。如果DF1$Name的长度与DF2的列数相同,这将起作用
colnames(DF2) <- DF1$Name
colnames(DF2)如果DF1$Name的长度与DF2的列数相同,那么这将起作用
colnames(DF2) <- DF1$Name
colnames(DF2)您在设计时会知道data.frame的列名吗?或者两者都是未知的/不同的?现在我知道了,但我认为将来它可能会改变,因为它是从每月的文件中读取的,所以如果有任何动态方法也会很好,否则我可以知道它有多难编码。names(DF2)在设计时你会知道data.frame的列名吗?或者两者都是未知的/不同的?现在我知道了,但我认为它将来可能会改变,因为它是从每月的文件中读取的,所以如果有任何动态方法也会很好,否则我可以知道它的编码有多难(DF2)
DF2 <- DF2 %>%
dplyr::rename(
M_D = PQR,
ABC123 = LMN
)
colnames(DF2) <- DF1$Name