2015-06-18 2 views
0

Предположим, что я делаю что-то вроде следующего:магазин каждую букву строки в переменной с петлей

x <- 'zeal' 
t <- strsplit(x, '') 
g <- unlist(t) 
g 
[1]"z" "e" "a" "l" 
r <- letters[(which(g[1] == letters))] 
r 
[1]"z" 

Моя конечная цель этого заключается в том, чтобы иметь что-то, где я могу сказать «найти элемент в some variable, который соответствует something так, например, если бы я был

e <- 'bacon' 
e <- strsplit(e, '') 
e <- unlist(e) 
e 
[1]"b" "a" "c" "o" "n" 

затем «найти элемент в e, который соответствует„Ъ“». А затем применить его снова, пока все элементы в e не совпадают

+4

Какой здесь выходной сигнал? Можете ли вы описать, что вы пытаетесь сделать словами? – MrFlick

+0

Привет, я отредактировал его с некоторым дополнительным объяснением, надеюсь, это поможет. – Nolohice

+0

Вы все еще пропускаете половину своего ввода и ваш желаемый результат. «найдите элемент в' e', который соответствует «b» «, я вижу' e', но откуда берется «b»? вы делаете все «буквы»? – Gregor

ответ

1

Я ничего не делаю sum делает что-либо, потому что каждый элемент g будет соответствовать только один раз. Здесь вы можете использовать функцию apply вместо явного цикла, как это стандартно в R. Переменная i похожа на g[i] так, как вы ее написали.

sapply(g, function(i) letters[which(i == letters)]) 
+0

О, хорошо, я remvoed 'sum', – Nolohice

Смежные вопросы