2013-08-20 3 views
-2

извините за задание другого вопроса, но я тщательно искал и не нашел удовлетворительного ответа.изменение порядка уровней всех столбцов/переменных в data.frame

Я получил подмножество data.frame с 6 столбцов, которые все factors проведение Лайкерта данных масштаба с 5 уровней:

strongly disagree - disagree - neutral - agree - strongly agree 

Проблема заключается в том, что они не упорядочены правильно и, что в одном случае, если один уровень отсутствует. Так что я знаю, как я могу изменить порядок столбцов отдельно:

data_frame$somecolumn <- 
ordered(data_frame$somecolumn, levels = c("strdisag", "disagree", "neutral","agree","stragree")) 

Моего вопрос, как я могу заменить: data_frame$somecolumn с выражением, которое будет влиять на все столбцов в этом data.frame не только одной переменных.

+0

Что именно вы имеете в виду «с выражением ...»? Вы хотите заменить столбец другим? – cianius

+0

С выражением я имею в виду что-то вроде «substr (names (data_frame)» или так ... поэтому я могу изменить ВСЕ столбцы –

ответ

1

Я думаю, что вы имеете в виду что-то вроде этого ...

# Make some reproducible data 
set.seed(123) 
df <- data.frame(replicate(6 , sample(c("strdisag", "disagree", "neutral","agree","stragree") , 5 , repl = TRUE))) 

# Unordered factor variable 
df[,1] 
[1] disagree agree neutral stragree stragree 
Levels: agree disagree neutral stragree 

# Make list of ordered factor variables 
out <- lapply(df , function(x) ordered(x, levels = c("strdisag", "disagree", "neutral","agree","stragree"))) 

# Combine into data.frame 
res <- do.call(data.frame , out) 
     X1  X2  X3  X4  X5  X6 
1 disagree strdisag stragree stragree stragree agree 
2 agree neutral neutral disagree agree neutral 
3 neutral stragree agree strdisag agree neutral 
4 stragree neutral neutral disagree stragree disagree 
5 stragree neutral strdisag stragree agree strdisag 

# Check result 
res[,1] 
[1] disagree agree neutral stragree stragree 
Levels: strdisag < disagree < neutral < agree < stragree 
+1

О, спасибо огромное! Это сработало отлично! –

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