R:为摘要/描述生成机器可读的输出

R:为摘要/描述生成机器可读的输出,r,describe,hmisc,R,Describe,Hmisc,我有一个包含10k行和500列的数据帧。对于每一列,我想为行中的每个唯一值创建一个计数。例如 Fruit Vegetable Meat 1 Apple Carrot Steak 2 Apple Potato Chicken 3 Pear Peas Duck 将产生: Fruit;Apple;2;Pear;1 Vegetable;Carrot;1;Potato;1;Peas;1 Meat;Steak;1

我有一个包含10k行和500列的数据帧。对于每一列,我想为行中的每个唯一值创建一个计数。例如

      Fruit    Vegetable  Meat 
1     Apple    Carrot     Steak
2     Apple    Potato     Chicken
3     Pear     Peas       Duck
将产生:

Fruit;Apple;2;Pear;1
Vegetable;Carrot;1;Potato;1;Peas;1
Meat;Steak;1;Chicken;1;Duck;1
Hmisc descripe函数生成此类分析,但输出格式太差,无法使用


谢谢。

您可以通过
apply

比如说

fruit <- c("Apple", "Apple", "Pear")
veg <- c("Carrot", "Potato", "Peas")
meat <- c("Steak", "Chicken", "Duck")
df <- data.frame(fruit, veg, meat)

apply(df, 2, table)

$fruit

Apple  Pear 
    2     1 

$veg

Carrot   Peas Potato 
     1      1      1 

$meat

Chicken    Duck   Steak 
      1       1       1

fruit谢谢,虽然输出仍然无法使用,但效果更好,例如,对于国家/地区,我得到一个2D矩阵。有没有办法强制每行生成一个结果?阿富汗阿尔巴尼亚阿尔及利亚564阿根廷亚美尼亚澳大利亚1233奥地利阿塞拜疆比利时31 20如果您的示例不够复杂,您应该对其进行修改,使其能够说明问题。完全不清楚为什么这个输出“无法使用”。那些不是“二维矩阵。它们是带名称的一维表,这正是给定一个向量作为input.dwn的表函数所期望的——那么您建议我如何将这些“带名称的一维表”转换为CSV/JSON格式,如初始问题中所述?另外,我不会给出一个10k行和250列的例子,所以当一个更简单的例子就足够了。。。你说每行强制一个结果是什么意思?我是R新手,看起来R被设置为很好地格式化结果,所以它们通过插入多个空格来垂直对齐,在视觉上很吸引人。然而,这样就不可能导出这些结果,或者用另一种语言处理它们。我想要的(正如我已经多次重申的那样)是descripe函数的机器可读输出。“无用”表示您没有描述的某些预期用途。“无用”->不是标题中概述的机器可读格式。抱歉。有时我在分析问题主体时记不住标题。这对我来说并不重要,但你可以投票并“检查”答案。
lapply(names(df),function(x){ tb <- table(df[[x]]);
      write.table(file="test.csv", append=TRUE, quote=FALSE, 
                  row.names=FALSE, col.names=FALSE, sep=";", 
                  x= paste(x, paste( names(tb), tb, collapse=";", sep=";") , 
                           sep=";") 
                  )})
#--------
fruit;Apple;2;Pear;1
veg;Carrot;1;Peas;1;Potato;1
meat;Chicken;1;Duck;1;Steak;1
> require(RJSONIO)
Loading required package: RJSONIO
> toJSON(df)
[1] "{\n \"fruit\": [ \"Apple\", \"Apple\", \"Pear\" ],\n\"veg\": [ \"Carrot\", \"Potato\", \"Peas\" ],\n\"meat\": [ \"Steak\", \"Chicken\", \"Duck\" ] \n}"