【问题标题】:subseting columns by the name of rows of another dataframe按另一个数据框的行名称对列进行子集
【发布时间】:2019-06-26 11:41:30
【问题描述】:

考虑到另一个数据框的行名,我需要对数据框的列进行子集化。(在 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

【问题讨论】:

  • 你可以做a[as.character(b$Name)]

标签: r dataframe subset


【解决方案1】:

简单的a[,b$Name] 不起作用,因为b$Name 被认为是一个因素。小心,因为它不会抛出错误,但你会得到错误的答案!

但这很容易通过使用a[,as.character(b$Name)]代替!

【讨论】:

    猜你喜欢
    • 2016-06-18
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多