如果我有一個數據幀DF:功能就行操作與列輸入
df <- data.frame(var_1 = c("abcd","abc","ab"), var_2 = c("abcd","abc","ab"))
df$var_1 <- as.character(df$var_1)
df$var_2 <- as.character(df$var_2)
說我想空白VAR_1行這是在3個字符,我通常會做到這一點:
df$var_1 <- ifelse(nchar(df$var_1) < 3,NA,df$var_1)
現在說我想把它變成一個函數,所以我可以將它應用到任何列。我創建了採用列名作爲輸入的功能:
Func <- function(input_col) {
df[input_col] <- ifelse(nchar(df[input_col]) <3,NA,df[input_col])
df
}
然而,當我跑這不會產生任何東西:
df <- Func(input_col = "var_1")
如何創建這個功能呢?在這裏使用其中一種應用功能會更好嗎?
無關你的實際問題,但我要指出你可以通過添加'stringsAsFactors = FALSE'作爲'data.frame()'的一個選項來避免第2行和第3行。 – coffeinjunky