我需要考虑另一个数据框的行名对一个数据框的列进行子集化。(在R中)
我正在尝试选择巴西亚马逊的代表性物种,并考虑到代表性位置的百分比(该信息位于另一个数据框中),将一个出色的巴西数据库作为子集
> a <- data.frame("John" = c(2,1,1,2), "Dora" = c(1,1,3,2), "camilo" = c(1:4),"alex"=c(1,2,1,2))
> a
John Dora camilo alex
1 2 1 1 1
2 1 1 2 2
3 1 3 3 1
4 2 2 4 2
> b <- data.frame("SN" = 1:3, "Age" = c(15,31,2), "Name" = c("John","Dora","alex"))
> b
SN Age Name
1 1 15 John
2 2 31 Dora
3 3 2 alex
> result <- a[,rownames(b)[1:3]]
Error in `[.data.frame`(a, , rownames(b)[1:3]) :
undefined columns selected
我想得到这个数据框
John Dora alex
1 2 1 1
2 1 1 2
3 1 3 1
4 2 2 2
答案 0 :(得分:0)
简单的a[,b$Name]
不起作用,因为b$Name
被认为是一个因素。要小心,因为它不会引发错误,但是您会得到错误的答案!
但这很容易通过使用a[,as.character(b$Name)]
来代替!