【发布时间】:2018-07-30 08:31:48
【问题描述】:
您能在 tidyr 中提出解决方案吗?
我尝试对 gather 和 spread 函数做同样的事情,但没有结果
# Input data
x = c("a","a","a","b","b","b")
y = c(5.1,5.8,5.3,2.2,2.7,2.4)
z = c("l","m","n","l","m","n")
xy = as.data.frame(cbind(x,y,z))
# output "Is Condition"
x y z
1 a 5.1 l
2 a 5.8 m
3 a 5.3 n
4 b 2.2 l
5 b 2.7 m
6 b 2.4 n
# I need output like this
a b z
1 5.1 2.2 l
2 5.8 2.7 m
3 5.3 2.4 n
对不起,我无法发布确切的要求。下面是什么要求。无法使其精确重现......
#Input
Sl No TESTER MP A1 B1 C1
1 435 A 4.96 6.75 4
1 435 B 10.87 83.86 4.19
1 435 C 12.83 126.38 1.01
1 435 D 12.9 129.22 3.63
1 435 E 10.64 74.41 4.25
2 435 A 4.96 7.43 2.43
2 435 B 10.94 84.53 3.43
2 435 C 12.84 126.55 2.57
2 435 D 12.9 128.95 2.1
2 435 E 10.6 74.23 5.04
#Output Required
Sl Test A B C D E A B C D E A B C D E
1 435 4.96 10.87 12.83 12.9 10.64 6.75 83.86 126.38 129.22 74.41 4.00 4.19 1.01 3.63 4.25
2 435 4.96 10.94 12.84 12.9 10.6 7.43 84.53 126.55 128.95 74.23 2.43 3.43 2.57 2.10 5.04
【问题讨论】:
-
欢迎来到 SO。请向我们展示您对传播的确切尝试。还有have a look at this cheatsheet here - 一开始它对我的那些案例帮助很大
-
你能发布没有按预期工作的代码吗?
spread应该可以正常工作。 -
输出中不可能有多个同名的列。
-
我看透了建议的类似问题。在显示的所有示例中,只有 1 个值列 (spread(key = ,value = )),此处为 3 列 (A1,B1,C1)。有没有人试过这个确认? @rar 列名不那么重要。关心的是可以做到吗?我已经尝试过传播 (key = MP , value = A1) 似乎不起作用。请求团队提供支持。