boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - [R]有没有函数:根据字典翻译一个向量
相关主题
求问一个R apply 函数的问题
Dashagen请进
R question about apply() and outer()
请问一个初步的R问题
翻译强迫症想问,score function中文是什么
问一个sas改大量的variable name的问题
R问题请教。
请问R里apply和sapply有什么区别
如何把model fitting statistics 读出来(R)
问个R里面avoid for loop的问题(sapply,lapply...)
相关话题的讨论汇总
话题: names话题: item话题: 字典话题: 即可话题: 向量
进入Statistics版参与讨论
1 (共1页)
D*******a
发帖数: 207
1
比如有字典d:
A 1
B 2
C 3
X 5
有向量x:
A
C
X
B
D
翻译完了是这样的:y
1
3
5
2
D
因为字典里面没有D,所以D保留不翻译。可以optionally删除D。直接用语句来完成比
较繁琐,容易出错,如下:
d=c("A","B","C","X","1","2","3","5");
dim(d)=c(4,2)
x=c("A","C","X","B","D")
sapply(x, FUN=function(item) {if(!(item %in% d)) {item} else {d[which(item =
= d[,1]),2]}})
我自己写过一个y=translation(x,d),就是把上面那句话包装一下;但是这样一个常用
的东西我想R里面会有现成的函数的。请指教!
s*****n
发帖数: 2174
2
这个其实很简单, 就用names()即可
d <- c(1,2,3,5)
names(d) <- c("A", "B", "C", "X")
x <- c("A", "C", "X", "B", "D")
x[is.element(x, names(d))] <- d[is.element(x, names(d))]
> x
[1] "1" "2" "3" "5" "D"
D*******a
发帖数: 207
3
你这个不对,翻译后的顺序错了,不是向量概念了,是set(集合)的概念了。
s*****n
发帖数: 2174
4
小改动一下即可
> d <- c(1,2,3,5)
> names(d) <- c("A", "B", "C", "X")
> x <- c("A", "C", "X", "B", "D")
> x[is.element(x, names(d))] <- d[x[is.element(x, names(d))]]
> x
[1] "1" "3" "5" "2" "D"

【在 D*******a 的大作中提到】
: 你这个不对,翻译后的顺序错了,不是向量概念了,是set(集合)的概念了。
w*******n
发帖数: 469
5
so nice to read your R code, I like R more than SAS.

【在 s*****n 的大作中提到】
: 小改动一下即可
: > d <- c(1,2,3,5)
: > names(d) <- c("A", "B", "C", "X")
: > x <- c("A", "C", "X", "B", "D")
: > x[is.element(x, names(d))] <- d[x[is.element(x, names(d))]]
: > x
: [1] "1" "3" "5" "2" "D"

1 (共1页)
进入Statistics版参与讨论
相关主题
问个R里面avoid for loop的问题(sapply,lapply...)
请教如何在一数列中找出某个数值的最长连续个数
R question, calculate mean over some rows
【欢迎进来讨论】for loop in R
问个R的问题
A question about R
How can I do this in R?
请教:如何能加速R codes 运行?
请教一道 R 的题目, 谢谢
初学R,请推荐入门书
相关话题的讨论汇总
话题: names话题: item话题: 字典话题: 即可话题: 向量