从数据框列表中提取数据集的列名
Extract column names of a dataset from a list of dataframes
我有两个数据帧列表,artrk_dist 和 comprk_dist。我正在使用 dplyr 在内部加入两个列表中的相应数据集。我需要使用列的索引而不是列名本身来引用连接调用中的列名。我尝试使用 colnames(dataset)[index],但这不起作用。
我有这个:
allrk_dist<- inner_join(artrk_dist[[1]],comprk_dist[[1]],
by=c(colnames(artrk_dist[[1]])[1]=
colnames(comprk_dist[[1]])[1],
colnames(artrk_dist[[1]])[2]=
colnames(comprk_dist[[1]])[2]))
但是这给出了一个错误:
Error: unexpected '=' in:
" allrk_dist[[1]]<- inner_join(artrk_dist[[1]],comprk_dist[[1]],
by=c(colnames(artrk_dist[[1]])[1]="
> colnames(comprk_dist[[1]])[1],
Error: unexpected ',' in " colnames(comprk_dist[[1]])[1],"
> colnames(artrk_dist[[1]])[2]=
+ colnames(comprk_dist[[1]])[2]))
Error: unexpected ')' in:
" colnames(artrk_dist[[1]])[2]=
colnames(comprk_dist[[1]])[2])"
>
这是我正在做的一个例子,它给出了上面的错误:
data1<- data.frame(a1=1:5,b1=6:10)
data2<- data.frame(a2=2:6,b2=5:9)
data_list<-list(data1,data2)
y<- inner_join(data_list[[1]],data_list[[2]],by=colnames(data_list[[1]])[1]
= colnames(data_list[[2]])[1])
我需要使用索引来引用列名,但我被困在那里了。
当我们传递一个对象时使用setNames
inner_join(data_list[[1]],data_list[[2]],by=setNames(
colnames(data_list[[2]])[1],colnames(data_list[[1]])[1]))
我有两个数据帧列表,artrk_dist 和 comprk_dist。我正在使用 dplyr 在内部加入两个列表中的相应数据集。我需要使用列的索引而不是列名本身来引用连接调用中的列名。我尝试使用 colnames(dataset)[index],但这不起作用。 我有这个:
allrk_dist<- inner_join(artrk_dist[[1]],comprk_dist[[1]],
by=c(colnames(artrk_dist[[1]])[1]=
colnames(comprk_dist[[1]])[1],
colnames(artrk_dist[[1]])[2]=
colnames(comprk_dist[[1]])[2]))
但是这给出了一个错误:
Error: unexpected '=' in:
" allrk_dist[[1]]<- inner_join(artrk_dist[[1]],comprk_dist[[1]],
by=c(colnames(artrk_dist[[1]])[1]="
> colnames(comprk_dist[[1]])[1],
Error: unexpected ',' in " colnames(comprk_dist[[1]])[1],"
> colnames(artrk_dist[[1]])[2]=
+ colnames(comprk_dist[[1]])[2]))
Error: unexpected ')' in:
" colnames(artrk_dist[[1]])[2]=
colnames(comprk_dist[[1]])[2])"
>
这是我正在做的一个例子,它给出了上面的错误:
data1<- data.frame(a1=1:5,b1=6:10)
data2<- data.frame(a2=2:6,b2=5:9)
data_list<-list(data1,data2)
y<- inner_join(data_list[[1]],data_list[[2]],by=colnames(data_list[[1]])[1]
= colnames(data_list[[2]])[1])
我需要使用索引来引用列名,但我被困在那里了。
当我们传递一个对象时使用setNames
inner_join(data_list[[1]],data_list[[2]],by=setNames(
colnames(data_list[[2]])[1],colnames(data_list[[1]])[1]))