使用replace函数更改R中的值

时间:2014-08-21 15:08:13

标签: r replace

replace()帮助信息非常基本,不包含任何示例。 说我有以下

ages <- sample(40:80, 10, replace = T)
weights <- 100 + ages*.2 + rnorm(10, 0 , 20)
type <- sample(letters[1:3], 10, replace = T)
grouping <- data.frame(ages,weights,type)

可能看起来像

   ages   weights type
1    49  81.27546    c
2    71 116.50149    c
3    67 152.14525    b
4    45 135.75849    c
5    72 114.35790    a
6    46 110.36591    a
7    40 106.16965    c
8    77 126.09591    c
9    44 107.28003    a
10   69  96.06653    b

我想将第9行中的'type'值从'a'更改为'z'。我已经看过使用以下命令,但都没有工作

replace(grouping$type[9],values = "z")

OR

grouping$type[9] <- z

2 个答案:

答案 0 :(得分:2)

你可以通过这个来解决你的问题

levels(grouping$type) <- c(levels(grouping$type), "z")  # adding new level "z"
grouping$type[9] <- "z"                                 # changing a to z 

答案 1 :(得分:2)

或者您可以通过设置data.frame

character默认情况下不将您的stringsAsFactors = FALSE类型变量转换为因子
grouping <- data.frame(ages,weights,type, stringsAsFactors = FALSE)

然后

grouping$type[9] <- "z"

将按预期工作