#r
Вопрос:
Я пытаюсь войти, чтобы создать программу R, которая будет принимать несколько входов от пользователей, разделенных пробелом. Для python я использовал функцию разделения, но я не знаю никакой эквивалентной функции для r.
while (i<=n){
cf[i]=as.double(readline(prompt='Enter cashflow:'))
p[i]=as.double(readline(prompt='Enter corresponding probability:'))
e[i]=cf[i]*p[i]
cat('14')
i=i 1
}
В настоящее время я использую циклы, но процесс набора текста утомителен.
Комментарии:
1. Вы смотрели на
?str_split
Ответ №1:
Вы можете использовать strsplit
для разделения строк и as.numeric
преобразования в числа
# read input, value is stored as a string
cf = readline(prompt='Enter cashflow:')
pr = readline(prompt='Enter corresponding probability:')
# split on ' ', unlist list-of-list, then convert to numeric
cf = as.numeric(unlist(strsplit(cf, ' ')))
pr = as.numeric(unlist(strsplit(pr, ' ')))
e = cf*pr
Комментарии:
1. Снимите список перед преобразованием , тогда нам не понадобится lapply:
c = as.numeric(unlist(strsplit(c, ' ')))
, кроме того, избегайте имен функций в качестве переменных:c
2. @zx8754 Спасибо. Это эффективнее и лучше. Я обновил код.