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')'這樣做,因爲你需要一個字符串向量。 –