由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 如何简化这个程序 in R
相关主题
问R和C的循环语句如何添加时间变量
这个R程序能帮改进一下吗?R中By函数是什么意思
请问如何用 R 产生一些变量R table问题弱问
问个sas循环的问题今天又“R”了 -- 感想和请教。
SAS将某个variable的value由数字替换为字符?更新一下Taste of R,再问两个R的问题。
请问SAS中如何删除字符变量内的零Vectorization question
请教这个怎么用SAS简单实现R program help
SAS里面怎么设置vectorHow to transpose a data frame in R
相关话题的讨论汇总
话题: rep话题: 循环话题: 替换成话题: temp话题: 果将会
进入Statistics版参与讨论
1 (共1页)
s****y
发帖数: 297
1
比如我有一列变量如下:
x <- c("d",rep("a",2),"c",rep("b",6),rep("c",3),"a","a","b",rep("d",8))
这样x 为:"d" "a" "a" "a" "a" "a" "c" "b" "b" "b" "b" "b" "b" "c" "c" "c" "a
" "a" "b" "d" "d" "d" "d" "d" "d" "d" "d"
x有四种值:"d" "a" "c" "b"
我想做的事情是:当某一种值的个数少于5个的时候,将它替换成统一的字符“o”.
这样结果将会是:"d" "o" "o" "o" "b" "b" "b" "b" "b" "b" "o" "o" "o" "o" "o"
"b" "d" "d" "d" "d" "d" "d" "d" "d"
也就是原数据中a和c全部被替换成了o。
我能想到的是用for 循环做对每种值逐一替换。
请大牛们指点一下:能否避免用for循环,直接用什么命令就可以解决的?
因为数据太庞大,用for循环的话时间太长了。。。。
非常感谢!!!
s*****n
发帖数: 2174
2
temp <- tapply(x, x, length)
x[x %in% names(temp)[temp < 5]] <- "o"

"a
"

【在 s****y 的大作中提到】
: 比如我有一列变量如下:
: x <- c("d",rep("a",2),"c",rep("b",6),rep("c",3),"a","a","b",rep("d",8))
: 这样x 为:"d" "a" "a" "a" "a" "a" "c" "b" "b" "b" "b" "b" "b" "c" "c" "c" "a
: " "a" "b" "d" "d" "d" "d" "d" "d" "d" "d"
: x有四种值:"d" "a" "c" "b"
: 我想做的事情是:当某一种值的个数少于5个的时候,将它替换成统一的字符“o”.
: 这样结果将会是:"d" "o" "o" "o" "b" "b" "b" "b" "b" "b" "o" "o" "o" "o" "o"
: "b" "d" "d" "d" "d" "d" "d" "d" "d"
: 也就是原数据中a和c全部被替换成了o。
: 我能想到的是用for 循环做对每种值逐一替换。

l*********s
发帖数: 5409
3

so cool

【在 s*****n 的大作中提到】
: temp <- tapply(x, x, length)
: x[x %in% names(temp)[temp < 5]] <- "o"
:
: "a
: "

s****y
发帖数: 297
4
thank you very much!!!
1 (共1页)
进入Statistics版参与讨论
相关主题
How to transpose a data frame in RSAS将某个variable的value由数字替换为字符?
How to compute sum of revenue for each day each person in R?请问SAS中如何删除字符变量内的零
请教一个R的命令请教这个怎么用SAS简单实现
R:如何从vector中挑出单一元素SAS里面怎么设置vector
问R和C的循环语句如何添加时间变量
这个R程序能帮改进一下吗?R中By函数是什么意思
请问如何用 R 产生一些变量R table问题弱问
问个sas循环的问题今天又“R”了 -- 感想和请教。
相关话题的讨论汇总
话题: rep话题: 循环话题: 替换成话题: temp话题: 果将会