Jon*_*Jon 4 casting r reshape melt
我正在使用我想要转动的大型数据框,以便列中的变量成为顶部的行.
我发现reshape包在这种情况下非常有用,除了cast函数默认为fun.aggregate = length.据推测,这是因为我通过"案例"执行这些操作,并且测量的变量数量因案例而异.
我想转动,以便在转动的数据框中将缺失的变量表示为"NA".
所以,换句话说,我想从像这样的熔融数据框架:
Case | Variable | Value
1 1 2.3
1 2 2.1
1 3 1.3
2 1 4.3
2 2 2.5
3 1 1.8
3 2 1.9
3 3 2.3
3 4 2.2
Run Code Online (Sandbox Code Playgroud)
对于这样的事情:
Case | Variable 1 | Variable 2 | Variable 3 | Variable 4
1 2.3 2.1 1.3 NA
2 4.3 2.5 NA NA
3 1.8 1.9 2.3 2.2
Run Code Online (Sandbox Code Playgroud)
代码dcast(data,... ~Variable)再次默认为fun.aggregate = length,它不保留原始值.
感谢您的帮助,如果有任何不清楚的地方,请告诉我!
小智 5
只需在cast调用中包含所有变量即可.重塑期望Value调用列value,因此它会抛出警告,但仍然可以正常工作.它使用的原因fun.aggregate=length是因为Case公式中缺少.它汇总了价值观Case.
尝试: cast(data, Case~Variable)
data <- data.frame(Case=c(1,1,1,2,2,3,3,3,3),
Variable=c(1,2,3,1,2,1,2,3,4),
Value=c(2.3,2.1,1.3,4.3,2.5,1.8,1.9,2.3,2.2))
cast(data,Case~Variable)
Using Value as value column. Use the value argument to cast to override this choice
Case 1 2 3 4
1 1 2.3 2.1 1.3 NA
2 2 4.3 2.5 NA NA
3 3 1.8 1.9 2.3 2.2
Run Code Online (Sandbox Code Playgroud)
编辑:作为对@Jon评论的回应.如果数据框中还有一个变量,你会怎么做?
data <- data.frame(expt=c(1,1,1,1,2,2,2,2,2),
func=c(1,1,1,2,2,3,3,3,3),
variable=c(1,2,3,1,2,1,2,3,4),
value=c(2.3,2.1,1.3,4.3,2.5,1.8,1.9,2.3,2.2))
cast(data,expt+variable~func)
expt variable 1 2 3
1 1 1 2.3 4.3 NA
2 1 2 2.1 NA NA
3 1 3 1.3 NA NA
4 2 1 NA NA 1.8
5 2 2 NA 2.5 1.9
6 2 3 NA NA 2.3
7 2 4 NA NA 2.2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3888 次 |
| 最近记录: |