2016-02-17 2 views
3

Я использую 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.

Спасибо!

+0

Ya, Я также очень неясен, каков конкретный вопрос здесь. –

+0

'cat (paste0 (вопрос," \ n "))' возможно? – tospig

+0

или 'cat (paste0 (levels (question)," \ n "))' для уровней – tospig

ответ

2

вы можете использовать новый оператор уценки строки " \n", чтобы добавить каждый ответ в новую строку в документе.

```{r} 
question <- as.factor(c(NA, NA, "response 1", "response 2", NA, "response 3")) 
``` 

`r paste0(levels(question), " \n", collapse="")` 

У меня был similar question to this here

Обратите внимание, что я использовал cat в моем комментарии, чтобы вы могли видеть его напечатанным в консоли. В документе уценки выполняется уход, поэтому вам не нужен cat

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