使用 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/