R - 更改列中的值,然后更改列类型

时间:2017-09-30 05:32:28

标签: r

所以,我使用dataset <- read_csv(...)获得了一组导入的NBA数据。名为Experience的列之一包含整数和字符,因此其类型设置为字符。我需要将每个"R"字符更改为0,然后将Experience的列类型设置为整数。

我刚开始使用R,所以我不太清楚在语法方面做什么。我应该运行for all 'R' in "Experience"种循环吗?我知道如何在Python中完成它,但我不知道如何在R中做到这一点。谢谢。

1 个答案:

答案 0 :(得分:1)

你描述的方式,这应该有效:

dataset[ dataset$Experience == "R", "Experience" ] <- 0

R的矢量化方式替换作业:

dataset[ dataset$Experience == "R", ](最后一个逗号)选择数据框中Experience列的值等于"R"的所有行。

dataset[ , "Experience" ](再次,逗号重要)选择"Experience"列中的值。

合并为一个,确切地选择了您定位的值,然后在0所在的位置分配值"R"

您可以使用内置帮助找到更多信息:?"[.data.frame"

然后,

dataset$Experience <- as.integer( dataset$Experience )

负责转换。

样品:

dataset <- structure(list(bla = 1:10, Experience = c("50", "49", "R", "47", "46", "R", "44", "R", "42", "41")), .Names = c("bla", "Experience"), row.names = c(NA, -10L), class = "data.frame")
dataset
   bla Experience
1    1         50
2    2         49
3    3          R
4    4         47
5    5         46
6    6          R
7    7         44
8    8          R
9    9         42
10  10         41
dataset[ dataset$Experience == "R", "Experience" ] <- 0
dataset$Experience <- as.integer( dataset$Experience )
str( dataset )
'data.frame':   10 obs. of  2 variables:
 $ bla       : int  1 2 3 4 5 6 7 8 9 10
 $ Experience: int  50 49 0 47 46 0 44 0 42 41