首页 > 解决方案 > 变异后创建一个新的数据框

问题描述

我试图在改变 df1 的第二列和 2:4 行的值后创建一个新的数据框。所以我想用 tax_v 减去 df1[c(2:4),NCOL(df1)] 的所有值并动态创建一个新的数据框。

df1 <- data.frame(t = c("77%","72%","74%","77%","79%"),
                  s = c("73%","74%","79%","74%","79%"))
tax_v = "74%"

new_col <- as.numeric(gsub("%","",c(df1[c(2:4),NCOL(df1)]))) %>% as.data.frame() %>% mutate(across(v1 = new_col[,1]-tax_v))

输出应该像一个数据框

在此处输入图像描述

标签: r

解决方案


您可以使用 -

library(readr)

data.frame(calc = paste0(parse_number(df1[2:4, ncol(df1)]) - parse_number(tax_v), '%'))

#  calc
#1   0%
#2   5%
#3   0%

使用dplyr-

library(dplyr)

df1 %>%
  slice(2:4) %>%
  select(last_col()) %>%
  mutate(s = paste0(parse_number(s) - parse_number(tax_v), '%'))

推荐阅读