gpt4 book ai didi

r - 使用列输入对行进行操作的函数

转载 作者:行者123 更新时间:2023-12-03 13:39:02 25 4
gpt4 key购买 nike

如果我有一个数据框 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")

如何创建此函数?在这里使用其中一个应用功能会更好吗?

最佳答案

你需要逗号:

Func <- function(input_col) {
df[,input_col] <-
ifelse(nchar(df[,input_col]) <3,
NA,df[,input_col])

#return df
df
}

关于r - 使用列输入对行进行操作的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24305302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com