Я использую R markdown для создания листов отзывов для студентов, основанных на данных опроса, которые мы собираем у их оценщиков. Ввод содержит 10 вопросов, импортированных в формате * .csv. Пример данные:R markdown: уровни фактора на разных линиях
question <- as.factor(c(NA, NA, "response 1.", "response 2.", NA, "response 3."))
В настоящее время я бег r levels(question)[-1]
в моем *.rmd
файле, который дает мне этот выход (с «» в качестве разделителей):
response 1., response 2., response 3.
Обратите внимание, что всегда есть некоторый NAs так [-1] просто удалить уровень NA фактора.
То, что я хочу, чтобы создать выходной сигнал с каждого ответа на новой строке:
response 1.
response 2.
response 3.
я могу сделать это на отдельных формах, определяя уровни на каждом, т.е. на уровне
r levels(question)[2]
r levels(question)[3]
r levels(question)[4]
Однако для каждый вопрос есть переменные числа ответов не-NA (от 1 до 4), поэтому мне нужно решение, которое явно не должно знать, сколько будет. т.е. тот же код будет давать желаемый формат для обоих q1, q2:
q1 <- as.factor(c(NA, NA, "response 1.", NA, NA, "response 2.")
q2 <- as.factor(c(NA, NA, "response 1.", "response 2.", "response 3.", "response 4.")
Обычно я бы решить эту проблему с для цикла, но уценки не читает код так же, как R консоли. Попробуйте as.character
, а не as.factor
, но он вам не поможет; вызов levels(question[-1])
показался наиболее удаленным способом удалить NA
s.
Спасибо!
Ya, Я также очень неясен, каков конкретный вопрос здесь. –
'cat (paste0 (вопрос," \ n "))' возможно? – tospig
или 'cat (paste0 (levels (question)," \ n "))' для уровней – tospig