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