我rep()在R中使用带有向量的functon:
c("x","y")[rep(c(1,2,2,1), times=4)]
Run Code Online (Sandbox Code Playgroud)
其输出为:
"x" "y" "y" "x" "x" "y" "y" "x" "x" "y" "y" "x" "x" "y" "y" "x"
Run Code Online (Sandbox Code Playgroud)
我不明白为什么x y y x在这里重复。如果使用rep(c(1,2,2,1), times=4),它将重复1 2 2 1四次。
为什么使用x和y在这里?
我有一个类似于"HLeelmloon"两个单词交织在一起的字符串.如何将它分成两个单独的单词,分开交替的字母?
我可以使用strsplit()和一个for循环来为两个新的向量分配交替的字母,然后加入列表,但这似乎很长的啰嗦:
string <- "HLeelmloon"
split<-el(strsplit(string,''))
> split
[1] "H" "L" "e" "e" "l" "m" "l" "o" "o" "n"
word1<-c()
word2<-c()
for(i in 1:length(split)){
if(i %% 2 == 1){
word1<-append(word1, split[i])
} else {
word2<-append(word2, split[i])
}
}
word1 = paste0(word1, collapse = '')
word2 = paste0(word2, collapse = '')
> word1
[1] "Hello"
> word2
[1] "Lemon"
Run Code Online (Sandbox Code Playgroud)
我的问题是它不是很优雅,如果我想将字符串分成N个不同的单词,它就不会很好.有一个更好的方法吗?