所以,我使用dataset <- read_csv(...)
获得了一组导入的NBA数据。名为Experience
的列之一包含整数和字符,因此其类型设置为字符。我需要将每个"R"
字符更改为0
,然后将Experience
的列类型设置为整数。
我刚开始使用R,所以我不太清楚在语法方面做什么。我应该运行for all 'R' in "Experience"
种循环吗?我知道如何在Python中完成它,但我不知道如何在R中做到这一点。谢谢。
答案 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