一次对多列进行采样并返回到聚合数据帧

时间:2018-08-28 16:16:11

标签: r

我有一个看起来像这样的数据集:

Column 1   Column 2   Column 3    Column 4
  Male        35        USA         DC
  Female      10        USA         NYC

我汇总了此数据框,以计算每列中唯一值的数量以及行总数的相应百分比。

所以我的新数据框看起来像这样:

我有一个看起来像这样的数据框(这只是示例):

  Column Name   Nominal  Percent 
1 Col1             3      1.00
2 Col2          69333    99.51
3 Col3          65766    94.40
4 Col4          60727    87.16

我想要的第二个数据帧是创建第三列-样本模态。新列应该是每个列的样本。像这样:

  Column Name   Nominal  Percent  Sample_1
1 Col1             3       1.00     Male
2 Col2           69333     99.51    25

我不记得如何自动为每一列完成此操作。我不想手动键入每个列名。有提示吗?

1 个答案:

答案 0 :(得分:1)

为了完整性。

数据,稍作修改以使其一致且对R友好(无空格):

#+PROPERTY: header-args :eval never-export

详细方法,使用临时origdat <- read.table(header=TRUE, stringsAsFactors=FALSE, text=' Column_1 Column_2 Column_3 Column_4 Male 35 USA DC Female 10 USA NYC') newdat <- read.table(header=TRUE, stringsAsFactors=FALSE, text=' Column_Name Nominal Percent 1 Column_1 3 1.00 2 Column_2 69333 99.51 3 Column_3 65766 94.40 4 Column_4 60727 87.16') 存储样本:

data.frame

将其与基本R合并:

set.seed(2)
tempdat <- data.frame(Column_Name = names(origdat),
                      Sample_1 = sapply(origdat, sample, size=1),
                      stringsAsFactors=FALSE)

merge(newdat, tempdat, by="Column_Name", all=TRUE) # Column_Name Nominal Percent Sample_1 # 1 Column_1 3 1.00 Male # 2 Column_2 69333 99.51 10 # 3 Column_3 65766 94.40 USA # 4 Column_4 60727 87.16 DC 合并:

dplyr