【发布时间】:2020-06-20 00:37:32
【问题描述】:
我有一个银行 Excel,它给了我这样的信息:
A B C
Name XYZ trash
Date 20/05/31 trash
Amount trash 0.01
Name ABC trash
Date 20/06/30 trash
Amount trash 0.02
Name KLM trash
Date 20/07/29 trash
Amount trash -0.03
我想要的结果是:
Name Date Amount
XYZ 20/05/31 0.01
ABC 20/06/30 0.02
KLM 20/07/29 -0.03
为了清理 df,我使用了:
sel_col <- c("Name" = 2, "Date" = 2, "Amount" = 3)
df <- df %>%
mutate(D = sel_col[match(df$A, names(sel_col))]) %>%
mutate(E = recode(D, A, B, C)) %>%
select(A, E)
如何拆分和转置?这是最好的方法吗?
Ps:使用 readxl,我收到以下警告:“未知或未初始化的列:'Data'”
【问题讨论】:
-
非常感谢!所有答案都解决了我的问题。我不清楚“垃圾”这个词。它不是垃圾这个词,而是一些不重要的数据或没有数据。真的很喜欢@a5c1d2h2i1m1n2o1r2t1 的简短回答,但因为它是一个 Excel 数据,总是可以有一些问题(例如“金额”加倍),我将使用来自@ronak-shah 的
group_by/pivot_wider/ungroup组合,如果pivot_wider函数出现问题,我会报错
标签: r dataframe dplyr split tidyverse