【发布时间】:2018-01-16 19:57:09
【问题描述】:
这个话题我已经有 3 到 4 次了,我以为我找到了解决方案,但我没有。我在转换这样的数据帧时遇到了很大的问题(更多示例):
https://megastore.uni-augsburg.de/get/TXLoameX7G/(我希望可以通过我的大学网站提供数据框)
原始数据框看起来像左侧的那个,我想让它看起来像右侧:
我有这段代码,它适用于我的大多数数据帧(真正的数据帧有 31 天,而不仅仅是 3 天)。
library(tidyverse)
trans_df= df %>% gather(Day, value, Day01:Day31) %>% spread(Station, value)
但由于某种原因,它不适用于我的所有数据框。有些人正在显示这个错误(就像我在链接中上传的那个):
Error: Duplicate identifiers for rows (2893, 2905), (19333, 19345), (35773, 35785), (52213, 52225), (68653, 68665), (85093, 85105), (101533, 101545), (117973, 117985), (134413, 134425), (150853, 150865), (167293, 167305), (183733, 183745), (200173, 200185), (216613, 216625), (233053, 233065), (249493, 249505), (265933, 265945), (282373, 282385), (298813, 298825), (315253, 315265), (331693, 331705), (348133, 348145), (364573, 364585), (381013, 381025), (397453, 397465), (413893, 413905), (430333, 430345), (446773, 446785), (463213, 463225), (479653, 479665), (496093, 496105), (2894, 2906), (19334, 19346), (35774, 35786), (52214, 52226), (68654, 68666), (85094, 85106), (101534, 101546), (117974, 117986), (134414, 134426), (150854, 150866), (167294, 167306), (183734, 183746), (200174, 200186), (216614, 216626), (233054, 233066), (249494, 249506), (265934, 265946), (282374, 282386), (298814, 298826), (315254, 315266), (331694, 331706), (348134, 348146), (364574, 364586), (381014, 381026),
我已经在这里问过如何解决这个问题:R - Wrong error message - Error: Duplicate identifiers for rows
我得到了答案:
data2 <- data %>%
gather(Day, value, Day01:Day31) %>%
tibble::rowid_to_column() %>%
spread(Station, value)
首先我认为它可以正常工作,因为我不再收到重复标识符错误,但文件大小越来越大,而且似乎每行重复 4 次!
知道如何最终解决这个问题吗?
【问题讨论】:
标签: r error-handling transform reshape