gpt4 book ai didi

r - 当列名是年份时减去列

转载 作者:行者123 更新时间:2023-12-04 17:08:45 25 4
gpt4 key购买 nike

我确定这个问题的答案很简单,但我想不通。

我有一个数据透视表,其中列标题是年份。


# A tibble: 3 x 5

country 2012 2013 2014 2015
<chr> <dbl> <dbl> <dbl> <dbl>
USA 45 23 12 42
Canada 67 98 14 25
Mexico 89 104 78 3

我想创建一个新列来计算其他两列之间的差异。然而,R 并没有将年份识别为列标题,而是采用了这两年之间的差异。

下面是我的代码示例。如果我把“”放在这些年左右,我会得到一个错误:“二元运算符的 x 非数字参数”。如果没有 "",R 会创建一个值为 -3 的新列,只需减去年份。


df %>%
pivot_wider(names_from = year, values_from = value) %>%
mutate(diff = 2012 - 2015)

我如何重写它以获得下表:


# A tibble: 3 x 6

country 2012 2013 2014 2015 diff
<chr> <dbl> <dbl> <dbl> <dbl> <dbl>
USA 45 23 12 47 -2
Canada 67 98 14 25 42
Mexico 89 104 78 3 86

最佳答案

你可以试试

df  %>%
pivot_wider(names_from = year, values_from = value) %>%
mutate(diff = .$'2012' - .$'2015')

用你的数据,

df <- read.table(text = "country  2012  2013  2014  2015 

USA 45 23 12 42
Canada 67 98 14 25
Mexico 89 104 78 3
", header = T)
names(df) <- c("country", 2012, 2013, 2014, 2015 )

df %>%
mutate(diff = .$'2012' - .$'2015')

country 2012 2013 2014 2015 diff
1 USA 45 23 12 42 3
2 Canada 67 98 14 25 42
3 Mexico 89 104 78 3 86

关于r - 当列名是年份时减去列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69939252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com