数据框中每列的唯一值列表

7
假设您有一个非常大的“csv”格式输入文件。您想知道每个列中出现的不同值。您该怎么做?
例如:
column1    column2    column3    column4
----------------------------------------
value11    value12    value13    value14
value21    value22    value23    value24
...
valueN1    valueN2    valueN3    valueN4

因此,我的输出应该类似于:

列1具有以下这些值: 值11, 值21, ...值N1。但我不需要看到相同值的重复出现。我只需要对我的数据有一个大致的了解。

2个回答

17

如果你读入了csv文件并生成了数据框dat,你可以执行以下操作:

ulst <- lapply(dat, unique)

如果您进一步想了解每一列的唯一值数量,请执行以下操作:

k <- lengths(ulst)

2
或者使用 dplyr,即 dat %>% summarise_each(funs(n_distinct)) - akrun
我很好奇,dplyr函数能否被改编成不仅计算每列中不同条目的数量,而且还能显示它们(或将它们返回到列表中)? - Mario Niepel

4

我发现Hmisc包中的describe()函数非常方便,可以对数据集进行概述,例如:

Hmisc::describe(chickwts)
chickwts 

 2  Variables      71  Observations
----------------------------------------------------------------------------------------------------------------
weight 
       n  missing distinct     Info     Mean      Gmd      .05      .10      .25      .50      .75      .90 
      71        0       66        1    261.3    90.26    140.5    153.0    204.5    258.0    323.5    359.0 
     .95 
   385.0 

lowest : 108 124 136 140 141, highest: 380 390 392 404 423
----------------------------------------------------------------------------------------------------------------
feed 
       n  missing distinct 
      71        0        6 

Value         casein horsebean   linseed  meatmeal   soybean sunflower
Frequency         12        10        12        11        14        12
Proportion     0.169     0.141     0.169     0.155     0.197     0.169
----------------------------------------------------------------------------------------------------------------

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接