Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据R中另一个数据帧中的值重命名数据帧列_R_Dataframe - Fatal编程技术网

根据R中另一个数据帧中的值重命名数据帧列

根据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

我有一个数据框,其中有一列和两条记录

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    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