Этот код должен взять слово и вычислить значения для букв слова в зависимости от положения буквы в слове. Так слово как «сломал» это, предполагают, чтобы вычислить значения для буквы «г» и «К»Я использую sapply неправильно?
strg <- 'broke'
#this part stores everything except the first,
#last, and middle position of the word
strg.leng <- nchar(strg)
other.letts <- sequence(strg.leng)
if (length(other.letts) %% 2 != 0) {
oth_let1 <- other.letts[-c(1, ceiling(length(other.letts)/2), length(other.letts))]
} else {
oth_let0 <- other.letts[-c(1, c(1,0) + floor(length(other.letts)/2), length(other.letts))]
}
print(paste("Values of the other letters of: ", strg))
#here is where the computation starts, taking in the objects created above
if ((nchar(strg) %% 2) != 0) {
sapply(oth_let1, function(i) print(paste(oth_let1[i], "L", (.66666*1.00001) - (oth_let1[i] - 1) *.05)))
} else {
sapply(oth_let0, function(i) print(paste(oth_let0[i], "L", (.66666*1.00001) - (oth_let0[i] - 1) *.05)))
}
Однако для «сломал» Я получаю это который только вычисления значения «к» и некоторые другие вещи:
[1] "4 L 0.5166666666"
[1] "NA L NA"
[1] "4 L 0.5166666666" "NA L NA"
Хотя желаемый результат должен быть значение как для «г» и «к», так что-то вроде:
Что я делаю неправильно? Использую ли я sapply
неправильно?
Почему вы используете 'oth_let0 [i]'? Это должно быть просто 'i'. И 'if else' там избыточен. Вы должны просто поместить один sapply (и использовать одну переменную вместо двух: 'oth_let0' и' oth_let1'). И загляните в [this] (http://stackoverflow.com/questions/19480652/sapply-in-r-why-returns-input) для понимания последнего. – m0nhawk