r - 将(df 的)每一列的唯一值存储在列表中

标签 r for-loop unique

使用 unique 可以直接获取列的唯一值。但是,我希望做同样的事情,但对于数据框中的多个列并将它们存储在一个列表中,所有这些都使用基数 R。重要的是,它不是我需要的组合,而只是每个 个人 的唯一值柱子。我目前有以下内容:

# dummy data
df = data.frame(a = LETTERS[1:4]
                ,b = 1:4)

# for loop
cols = names(df)
unique_values_by_col = list()
for (i in cols)
{
  x = unique(i)
  unique_values_by_col[[i]] = x
}

显示 unique_values_by_col 时出现问题,因为它显示为空。我认为问题是 i 作为文本而不是变量传递给循环。 任何帮助将不胜感激。谢谢。

最佳答案

为什么不使用 lapply 完全避免 for 循环:

lapply(df, unique)

导致:

> $a
> [1] A B C D
> Levels: A B C D

> $b
> [1] 1 2 3 4

关于r - 将(df 的)每一列的唯一值存储在列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54363293/

相关文章:

r - R(或任何语言)中偏态正态分布的非线性最小二乘回归

r - 最佳实践提交长时间运行的 R 作业,稍后检索?

php - 为什么在 for 循环的条件下调用函数不好?

java - JPA:列在其父级中应该是唯一的。

sql - 如何在 dbplyr-query 中的 summarise-function 中获取组的第一行

r - 如何在 R 中使用 httr 对 shibboleth 多主机名网站进行身份验证

javascript - 脱离 for 循环

java - 在我的具体情况下,如何将此数组转换为列表?

url - 用于搜索优化的唯一 URL

MySQL查询: Updating foreign key with unique Id