【问题标题】:Subset and lookup from separate table子集和从单独的表中查找
【发布时间】:2016-11-14 15:46:48
【问题描述】:

我有这个查找数据帧:

  VAR1=c('X1')
  VAR2=c('X2')
  VAR3=c('X3')
  VAR4=c('X4')
  VAR5=c('NA')

  df<-data.frame(VAR1,VAR2,VAR3,VAR4,VAR5)

我需要与主数据帧交叉引用,以便选择变量 X1 到 X5。有时,就像示例一样,第 5 列只是 NA。

我通常会使用以下内容:

 main_data <-subset(main_data, select=c(df[1,1],df[1,2],df[1,3]))

 main_data <-subset(main_data, select=c(df[1,1:max(col(df))]))

但是有 NA,而且我将动态计算列数,但这些行不通。

另一个想法是在 main_data 上使用 grepl,但我不能让它一次处理多个变量:

 main_data <- main_data[, grepl(paste0(df[1:max(col(df))], colnames(main_data)))]

我确信有一个简单的方法可以做到这一点,但我找不到它。

【问题讨论】:

  • 另一种方法是将df 强制转换为向量并使用%in%。例如。 main_data[, names(main_data) %in% yourvector].
  • @RomanLuštrik 好点,我现在正在测试这个。

标签: r subset grepl


【解决方案1】:

在 Roman 的帮助下,我得到了它:

  df<-as.vector(unlist(df))
  main_data<-main_data[, names(main_data) %in% df]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 2021-11-13
    • 2011-09-02
    • 1970-01-01
    • 1970-01-01
    • 2015-05-09
    • 2019-04-22
    相关资源
    最近更新 更多