修改数据帧中变量的值

时间:2019-05-23 15:52:15

标签: r dataframe

我想修改变量的值。这些值是连续几年的。它们从1960年开始,到2017年结束。直到2017年,都有多个1960、1961等。每年的多个值对应于不同的国家。国家是另一栏中的另一个变量。但是,每年都用X标记。每个1960都有X1960,依此类推,直到X2017。我想删除所有年份的X。

数据库如下所示

Country           Year      GDP
Afghanistan       X1960
England           X1960
Sudan             X1960
.
.
.
Afghanistan       X2017
England           X2017
Sudan             X2017
.
.

2 个答案:

答案 0 :(得分:1)

您好,您可以对数据框执行gsub功能

ABC <- data.frame(country = c("Afghanistan", "England"), year = c("X1960","X1960"))

print(ABC)
      country  year
1 Afghanistan X1960
2     England X1960

ABC$year <- gsub("X","",ABC$year)

> print(ABC)
      country year
1 Afghanistan 1960
2     England 1960

答案 1 :(得分:0)

这是一个tidyverse解决方案。

# Load libraries
library(dplyr)
library(readr)

# Dummy data frame
df <- data.frame(country = c("Afghanistan", "England", "Sudan"), 
                 year = rep("X1960", 3),
                 stringsAsFactors = FALSE)

# Quick peak
print(df)
#>       country  year
#> 1 Afghanistan X1960
#> 2     England X1960
#> 3       Sudan X1960

# Strip all non-numerics from strings
df %>% mutate(year = parse_number(year))
#>       country year
#> 1 Afghanistan 1960
#> 2     England 1960
#> 3       Sudan 1960

reprex package(v0.2.1)于2019-05-23创建