k****i 发帖数: 70 | 1 a=c(rep(1,15)), b=c(rep(1:3,each=5))
想用 a,b 代替
c( "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1" ,"1,1,1,1,1,2,2,2,2,2,3,3,3,3,3"))
之中的一堆重复数字. 但是 引号一定要保留.
多谢啦 | L**********A 发帖数: 7115 | 2 没看明白
你是要用paste() 吗?
【在 k****i 的大作中提到】 : a=c(rep(1,15)), b=c(rep(1:3,each=5)) : 想用 a,b 代替 : c( "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1" ,"1,1,1,1,1,2,2,2,2,2,3,3,3,3,3")) : 之中的一堆重复数字. 但是 引号一定要保留. : 多谢啦
| f***a 发帖数: 329 | 3 a <- rep(1,15)
b <- rep(1:3,each=5)
tt <- c( "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"
,"1,1,1,1,1,2,2,2,2,2,3,3,3,3,3")
ind.a <- which(apply(data.frame(tt),1,function(t)
sum(as.numeric(unlist(strsplit(t,",",fixed=T)))-a)
)==0)
tt是你要检验的vector, ind.a是结果(index of elements which can be replaced
by a). 同理要检验b的话,在checking function中用b替换a就行了。
希望我看懂了你的意思,呵呵~
这个是假定element长度都是15的情况,不是的话添加检验长度的语句会更efficient些。 | f***a 发帖数: 329 | 4 回头看了下,我那行code好像不怎么好读。
大致思想就是compare elements of tt with a.由于数据类型和结构都不一样,要么把
a变成tt element的样子,要么变tt element。我用的后者,都变成numeric vector然
后比较两个numeric vector是不是一样的。
找到能替换的index,在想做什么都比较简单了吧。 :) | k****i 发帖数: 70 | |
|