循环遍历变量名称的向量并应用函数(在 R 中)

Looping through vector of variable names and applying a function (in R)

所以我已经找到了一些相关主题,但不知何故无法将它们应用到我的案例中。其实我觉得这个很简单: 我正在尝试编写一个循环,该循环将向我显示给定数据帧的每个变量的所有唯一值(让我们称之为 "data")。因此,我正在尝试应用 unqiue() fct。以下是我的想法:

i=0 
for (name in names(data)) {i=i+1; print(get(paste0((unique(names(data)[i])))))}

我想我还没弄清楚get/assign/paste的正确用法。

有什么帮助吗?提前致谢

如果你想写一个for循环来实现这个,你可以这样做:

for(name in names(data)) {
    print(unique(data[, name]))
}

您也可以使用lapply功能。 lapply(data, unique).

更新applylapply之间的性能比较:

df <- data.frame(x = 1:1000, y = 1:1000, z = 1:1000)
microbenchmark(lapply(df, unique), apply(df, 2, unique), times = 10000)
Unit: microseconds
                 expr     min      lq      mean  median      uq      max neval
   lapply(df, unique)  41.874  47.211  69.87959  51.317  55.832 10405.64 10000
 apply(df, 2, unique) 163.390 178.580 241.17553 187.201 209.370 11389.26 10000