【问题标题】:Usage of tidyr application for data cleaning [duplicate]使用 tidyr 应用程序进行数据清理 [重复]
【发布时间】:2018-07-30 08:31:48
【问题描述】:

您能在 tidyr 中提出解决方案吗?

我尝试对 gatherspread 函数做同样的事情,但没有结果

# 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) 似乎不起作用。请求团队提供支持。

标签: r tidyr


【解决方案1】:
  • key 参数包含包含新列名称的列的名称
  • value 参数包含列的名称,该列包含要填充的值。

.

library(tidyr)
xy %>% spread(x,y) # or spread(xy, x, y)
#   z   a   b
# 1 l 5.1 2.2
# 2 m 5.8 2.7
# 3 n 5.3 2.4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 2017-10-15
    • 2018-01-13
    • 1970-01-01
    • 2011-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多