-2

別の質問をして申し訳ありませんが、徹底的に検索しましたが、満足のいく答えが見つかりませんでした。

5 つのレベルのリッカート スケール データをdata.frameすべて保持している 6 つの列を持つサブセットを取得しました。factors

strongly disagree - disagree - neutral - agree - strongly agree 

問題は、それらが正しく順序付けられておらずある場合には 1 つのレベルが欠落していることです。したがって、列の順序を個別に修正する方法を知っています。

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

私の質問は、単一の変数だけでなく、その中のすべての列にdata_frame$somecolumn影響を与える式で: をどのように置き換えることができるかです。data.frame

4

1 に答える 1

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
于 2013-08-20T16:14:08.427 に答える