【问题标题】:subset of R undefined columnsR个未定义列的子集
【发布时间】:2019-11-17 04:07:57
【问题描述】:

我正在尝试使用子集从两个表的联合中获取值

> ans<-subset(table2, select=rownames(table1))

但我收到以下错误:

[.data.frame(x, r, vars, drop = drop) 中的错误:选择了未定义的列

给定 table1

  V2
E  x
F  x
G  x
H  x

还有table2

  V1 V2 V3 V4 V5 V6
1  A  B  C  D  E  F
2  2  5  6  4  6  8

我要获取:

E   F

6   8

【问题讨论】:

  • subset(table2, select=intersect(rownames(table1), colnames(table2)))
  • 您好,r2evans,非常感谢您的帮助! > ans 数据框,0 列 2 行
  • 你应该考虑用tbl2 &lt;- table2[-1, ]; names(tbl2) &lt;- unlist(table2[1, ]); tbl2 &lt;- lapply(tbl2, as.integer)修复你的table2

标签: r subset


【解决方案1】:

使用了这个数据:

table1 <- structure(list(V2 = structure(c(1L, 1L, 1L, 1L), .Label = "x", class = "factor")), class = "data.frame", row.names = c("E", 
"F", "G", "H"))

structure(list(X1 = c("A", "2"), X2 = c("B", "5"), X3 = c("C", 
"6"), X4 = c("D", "4"), X5 = c("E", "6"), X6 = c("F", "8")), class = "data.frame", row.names = c(NA, 
-2L))

注意:如果数据结构是因子,这将不起作用。我组装了 table2:

table2 <- data.frame(rbind(as.character(LETTERS[1:6]), c(2, 5, 6, 4, 6, 8)), stringsAsFactors = FALSE)

那么,这行得通:

ans <- table2[, as.character(table2[1, ]) %in% rownames(table1)]

ans

【讨论】:

  • 您好,markhogue,非常感谢您的大力帮助!它有效!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-09
  • 1970-01-01
  • 2013-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多