我想通过引用带有字符串的列来子集数据帧,然后选择满足条件的该列的值。
从以下代码

 employee <- c('John Doe','Peter Gynn','Jolie Hope')
 salary <- c(21000, 23400, 26800)
 startdate <- as.Date(c('2010-11-1','2008-3-25','2007-3-14'))
 employ.data <- data.frame(employee, salary, startdate)
 salary_string <- "salary"

我想通过使用 Salary_string 来引用列名称来获取超过23000的所有薪水。

我尝试不成功:
set <- subset(employ.data, salary_string > 23000)
set2 <- employ.data[, employ.data$salary_string > 23000)

这似乎不起作用,因为salary_string是字符类型,但是我需要某种“列名对象”。使用as.name(salary_string)也不起作用。
我知道我可以通过使用获取子集
set <- subset(employ.data, salary > 23000)

但是我的目标是使用一次字符类型为(salary_string)的列名称,一次使用subset(employ.data,...),一次使用employee.data [,...]

最佳答案

简短的答案是:不要使用subset,但是
就像是

employ.data[employ.data[salary_string]>23000,]

09-28 03:24