将变量名称添加为数据框行

时间:2019-07-24 18:19:44

标签: r dataframe variables

我在这里有以下代码:In R, how can I compute percentage statistics on a column in a dataframe ? (table function extended with percentages)。在第一列中,它给出变量的值。在第二列中,它提供了dfdo.call(rbind,lapply(df,tblFun))中指定的每个变量的每个值的计数(因此可以像:do.call(rbind,lapply(df[1],tblFun))do.call(rbind,lapply(df[1:3],tblFun))等。 )。在第三列中,id给出了该值出现百分比的频率。

df<-data.frame(a=c(1,2,2,2,2), b=c(2,2,2,2,1), c=c(3,3,3,3,4), d=c(6,6,6,6,7))

tblFun <- function(x){
  tbl <- table(x)
  res <- cbind(tbl,round(prop.table(tbl)*100,2))
  colnames(res) <- c('Count','Percentage')
  res
}

a<-do.call(rbind,lapply(df,tblFun))

out <- do.call(rbind,lapply(df,tblFun))
out <- cbind(index = as.numeric(row.names(out)), out)
row.names(out) <- NULL
b<-as.data.frame(out)
b

它正在按预期方式工作并给出了结果:

  index Count Percentage
1     1     1         20
2     2     4         80
3     1     1         20
4     2     4         80
5     3     4         80
6     4     1         20
7     6     4         80
8     7     1         20

我需要:相应值的变量名称也应包含在单独的行中,这样结果应该看起来像(SO不会按照我的格式进行格式化,所以我放在了pastebin上) https://pastebin.com/F1SK3JWc。因此,我在这里需要实现的是在第一行的*************,第二行的变量名,随后的第三行---------,随后的行中对该变量的值进行修改,并针对所有变量执行此操作。

0 个答案:

没有答案