0
我想编写一个可重用函数,其输入参数将是数据框以及我想要将其与其子集合的列的名称。如何使用字符串函数参数来对该函数中的数据框进行子集
的功能定义如下:
funct <- function(df, colnames){
df_subset = df[ , colnames]
return(df_subset) }
flights_subset <- funct(flights, c("MONTH","YEAR")) #1st arg is a df, 2nd arg is a string
为了让更多的清晰,我已经给代码来创建输入文件“航班”和返回的文件我从功能“flights_subset”
期待flights <- structure(list(YEAR = c(2011L, 2011L, 2011L, 2011L, 2011L), MONTH = c(1L,
1L, 1L, 1L, 1L), DAYOFMONTH = 1:5, DAYOFWEEK = c(6L, 7L, 1L,
2L, 3L), DEPTIME = c(1400L, 1401L, 1352L, 1403L, 1405L)), .Names = c("YEAR",
"MONTH", "DAYOFMONTH", "DAYOFWEEK", "DEPTIME"), row.names = 5424:5428, class = "data.frame")
flights_subset <- structure(list(MONTH = c(1L, 1L, 1L, 1L, 1L), YEAR = c(2011L,
2011L, 2011L, 2011L, 2011L)), .Names = c("MONTH", "YEAR"), class = "data.frame", row.names = 5424:5428)
你的函数看起来还好。尝试'funct(mtcars,c('mpg','cyl'))'。 –
谢谢Chirayu。另外,你能告诉我,如果我将字段存储在字符串中,我可以使用该字符串作为函数输入参数。例如:b < - “c('MONTH','YEAR')”..并使用b作为函数的第二个参数。 –
你不认为这是值得一试,反正你创建了一个字符串错了。你应该像'b < - c('mpg','cyl')'这样做,因为你需要一个字符串向量。 –