【发布时间】:2022-07-21 23:16:08
【问题描述】:
我有以下结构的四个数据框:
df1 <- data.frame(c("2021-01-01", "2021-01-02", "2021-01-03", "2021-01-04", "2021-01-05", "2021-01-06"), c(1002, 1200, 1111, 2211, 1112, 1621), c("A", "B", "C", "D", "E", "F"))
names(df1) <- c('date', 'value', 'type')
df2 <- data.frame(c("2021-01-01", "2021-01-02", "2021-01-03", "2021-01-04", "2021-01-05", "2021-01-06"), c(401, 222, 967, 111, 982, 120), c("A", "B", "C", "D", "E", "F"))
names(df2) <- c('date', 'value', 'type')
df3 <- data.frame(c("2021-01-01", "2021-01-02", "2021-01-03", "2021-01-04", "2021-01-05", "2021-01-06"), c(214, 151, 272, 295, 102, 211), c("A", "B", "C", "D", "E", "F"))
names(df3) <- c('date', 'value', 'type')
df4 <- data.frame(c("2021-01-01", "2021-01-02", "2021-01-03", "2021-01-04", "2021-01-05", "2021-01-06"), c(107, 751, 614, 527, 125, 111), c("A", "B", "C", "D", "E", "F"))
names(df4) <- c('date', 'value', 'type')
我想创建 df1 的子集(保留日期,但将类型替换为“Z”),并且值从每日值中减去 df2、df3 和 df4 中的总和值(每天)在df1中。所以 2021-01-01 的值是:280。
我试过的代码是:
new_df <- df1 %>% df1&values-sum(df2$values, df3$values, df4$values)
然而,遗憾的是,这会返回“3 个参数传递给 '$',需要 2 个”错误,因此无法继续为新的 df 重命名类型。
任何帮助将不胜感激。
【问题讨论】:
-
提防错别字:
df1&values=df1$values,列名为value而不是values。