如何使数据透视表具有多列

时间:2019-04-07 05:57:26

标签: r

我想使用具有多个列的R创建数据透视表。我的data.csv文件的图像和所需的预期结果如下:

这是我的示例数据文件。

my data.csv

我想要使用R输出的是:

Desired Result using R

使用excel中的数据透视表可以轻松获得所需的结果,但是我只想使用R。

2 个答案:

答案 0 :(得分:2)

使用base R进行三步操作,不带包装

数据:

    structure(list(`Registration Number` = structure(c(1L, 2L, 1L, 
2L, 2L, 1L), .Label = c("123", "456"), class = "factor"), Name = structure(c(1L, 
2L, 1L, 2L, 2L, 1L), .Label = c("a", "b"), class = "factor"), 
    Marks1 = c(20, 30, 40, 50, 60, 70), Marks2 = c(10, 20, 30, 
    40, 50, 60)), .Names = c("Registration Number", "Name", "Marks1", 
"Marks2"), row.names = c(NA, -6L), class = "data.frame")

让我们使用aggregate函数

第1步-按注册号计算商标1的总和

data1<-aggregate(Marks1 ~ `Registration Number`,dataf, sum)

第2步-通过注册号计算分数2的总和

data2<-aggregate(Marks1 ~ `Registration Number`,dataf, sum)

第3步-将两者合并在一起

dataset<-merge(data1,data2)


  Registration Number Marks1 Marks2
1                 123    130    100
2                 456    140    110

答案 1 :(得分:0)

您可以使用dplyr软件包

<img id="myImg" src="https://pbs.twimg.com/profile_images/591093476/bird.jpg">
<input type="range" id="slider1" value="50">
<input type="range" id="slider2" value="4">
<input type="range" id="slider3" value="50">
<input type="range" id="slider4" value="50">
<input type="range" id="slider5" value="50">
<input type="range" id="slider6" value="50">
<input type="range" id="slider7" value="50">