【发布时间】:2019-04-02 17:19:14
【问题描述】:
我已将连续 3 年的调查数据合并到一个数据框中。事实证明,每次调查的变量名称都不同(例如,100 个变量有 3 倍,而不是只有 100 个变量)。我正在尝试创建一个函数,允许我输入与同一问题相关的变量。然后该函数观察哪一个包含信息并返回一个新变量来替换原来的 3 个变量。
我尝试创建下面的函数。使用 'coalesce' 选择观察结果并忽略所有 NA。
df <- matrix(c(3, NA, NA, NA, 0.2, NA, NA, NA, 0.5),
ncol = 3, nrow = 3,
dimnames = list(NULL, c("a", "b", "c")))
special_function <-function(df, Name_new_variable, Name_a, Name_b, Name_c, na.rm= FALSE) {
df$Name_new_variable <- coalesce(df$Name_a,
df$Name_b,
df$Name_c
)
df$Name_a <- NULL
df$Name_b <- NULL
df$Name_c <- NULL
}
期望上面的函数查看数据帧“df”。考虑新变量“name_new_variable”的名称并合并 3 列 Name_a、Name_b、Name_c。
【问题讨论】:
-
欢迎来到 SO。请与
dput分享示例数据,以便人们重现问题
标签: r function user-defined-functions