我是R编程的新手,感谢这个论坛提供的宝贵建议。
我正在使用以下格式的Dataframe DF1
我正在尝试创建另一个数据框DF2,其中DF1的“描述”列的值应为DF2中的列名,并且必须相应地捕获与该Decription对应的贷方和借方值(贷方为正数字和借方为负数)
如果您能在R中提出达到此目标的逻辑,我将不胜感激。在此先感谢。
dput(DF1) is as below
structure(list(Account_number = c(1234, 1234, 1234, 3456, 3456,
4567, 4567), Credit = c(5.1, NA, 10, NA, 10, 5, NA), Debit = c(NA,
7.2, NA, 20, NA, NA, 30), Description = c("abc", "pqr", "xyz",
"xyz", "abc", "pqr", "abc")), .Names = c("Account_number", "Credit",
"Debit", "Description"), row.names = c(NA, -7L), class = c("tbl_df",
"tbl", "data.frame"))
愿望
答案 0 :(得分:1)
使用tidyverse:
DF1 %>% mutate(Debit=-Debit) %>%
gather(k,v,-Account_number,-Description) %>%
select(-k) %>% filter(!is.na(v)) %>%
spread(Description,v)
# A tibble: 3 x 4
# Account_number abc pqr xyz
#* <dbl> <dbl> <dbl> <dbl>
#1 1234. 5.10 -7.20 10.
#2 3456. 10.0 NA -20.
#3 4567. -30.0 5.00 NA