来自单独 table 的子集和查找
Subset and lookup from separate table
我有这个查找数据框:
VAR1=c('X1')
VAR2=c('X2')
VAR3=c('X3')
VAR4=c('X4')
VAR5=c('NA')
df<-data.frame(VAR1,VAR2,VAR3,VAR4,VAR5)
我需要与主数据框交叉引用,以便我 select 变量 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)))]
我确信有一个简单的方法可以做到这一点,但我找不到它。
在 Roman 的帮助下我搞定了:
df<-as.vector(unlist(df))
main_data<-main_data[, names(main_data) %in% df]
我有这个查找数据框:
VAR1=c('X1')
VAR2=c('X2')
VAR3=c('X3')
VAR4=c('X4')
VAR5=c('NA')
df<-data.frame(VAR1,VAR2,VAR3,VAR4,VAR5)
我需要与主数据框交叉引用,以便我 select 变量 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)))]
我确信有一个简单的方法可以做到这一点,但我找不到它。
在 Roman 的帮助下我搞定了:
df<-as.vector(unlist(df))
main_data<-main_data[, names(main_data) %in% df]