【发布时间】:2017-08-17 17:40:25
【问题描述】:
大家好,这是我面临的麻烦。
我有一个格式错误的数据框。
就像这样。
id | 1/3/2017| 1/4/2017 |
a | 4 | 4 |
b | 5 | 5 |
c | 6 | 6 |
d | 7 | 7 |
显然我想要这样的整洁格式,以及一个 00:00:00 小时的附加列
id | date | hour |data|
a | 1/3/2017 |00:00:00 |4 |
b | 1/3/2017 |00:00:00 |5 |
c | 1/3/2017 |00:00:00 |6 |
d | 1/3/2017 |00:00:00 |7 |
a | 1/4/2017 |00:00:00 |4 |
b | 1/4/2017 |00:00:00 |5 |
c | 1/4/2017 |00:00:00 |6 |
d | 1/3/2017 |00:00:00 |7 |
执行此操作的代码如下
data <- data %>%
gather(date, data, "1/3/2017":"1/4/2017")
data <- data %>%
mutate(hour = rep("00:00:00", ncol(data)))
这使我的代码比我想要的要长,但是我喜欢使用的功能不起作用
data <- data %>%
gather(date, data, "1/3/2017":"1/4/2017") %>%
mutate(hour = rep("00:00:00", ncol(data)
我得到的错误信息如下
Error in mutate_impl(.data, dots) :
Columnhoramust be length 30140 (the number of rows) or one, not 220
我会感谢您的帮助,因为我是 R 新手,不知道为什么会这样,我的直觉是,当我使用 %>% magrittr 管道运算符指定执行操作的环境时,出现了问题,但不知道如何指定正确的环境。
我很抱歉我写得不好,但我的母语是西班牙语,而且我的外语有点慢。
干杯。谢谢大家。
【问题讨论】:
-
data <- data %>% gather(date, data, 2:3) %>% mutate(hour = "00:00:00") -
嗯,谢谢,这非常有效。祝你有美好的一天。
-
@donlelek,作为答案发布(并解释)?
-
对不起,昨天没时间,我会尽快回复。