【发布时间】:2014-10-15 07:03:58
【问题描述】:
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 行中的“类型”值从“a”更改为“z”。我曾尝试使用以下命令,但均未奏效
replace(grouping$type[9],values = "z")
或
grouping$type[9] <- z
【问题讨论】:
-
help(replace) 中有:“注意:x 不变:记得分配结果。”所以你不记得了。 R 是一种函数式语言。您需要分配函数的结果。
-
您的替换行不起作用,因为您没有使用正确的语法
replace(x, list, values)。第二行不起作用,因为您分配了一个未定义的表达式z。如果您在z周围加上一组引号以使其成为一个字符;它仍然无法正常工作,因为您正试图向因子列type引入一个新级别。 -
无需替换即可完成:
grouping$type[grouping$type == 'a'] <- 'z';你有什么理由要使用替换吗? -
@rawr,他不能这样做,因为
type是factor -
哦,是的,我应该检查一下我的选项设置