簡體   English   中英

如何構造數據集以運行PCA?

[英]How to structure dataset to run a PCA?

基本上,我的問題是我想運行PCA分析,但是我的數據結構不正確。 希望這張圖片能使您理解我的意思:

trial.one.two <- na.omit(trial.one.one)
head(trial.one.two)
                 v79             v81                v82 Q.One Q.Two Q.Three
2 Disagrees a little Agrees a little Disagrees a little     3     2       3
3       Agrees a lot    Agrees a lot Disagrees a little     1     1       3
4    Agrees a little Disagrees a lot    Disagrees a lot     2     4       4
5       Agrees a lot    Agrees a lot    Disagrees a lot     1     1       4
6    Agrees a little    Agrees a lot    Agrees a little     2     1       2
8       Agrees a lot Agrees a little       Agrees a lot     1     2       1

我正在使用的數據是在5000多個個人中進行的一項調查,我想知道有多少人回答了例如“非常同意”:2253,“有點同意”:2005等。我需要這些數據來按以下方式分配:

1“非常同意” 2“有點同意” 3“有點不同意” 4“很多不同意”

其中1是組件1,2是組件2,依此類推,基本上,我想運行PCA。

誰能指導我該怎么做?

----------更新-------------

在實施之后:

convert.factor <- function(val){
  if(val == "Agrees a lot"){
    return(1)
  } else if(val == "Agrees a little") {
    return(2)
  } else if(val == "Disagrees a little") {
    return(3)
  } else if(val == "Disagrees a lot") {
    return(4)
  }
}

trial.one.two$v79 <- sapply(trial.one.two$v79, convert.factor)
trial.one.two$v81 <- sapply(trial.one.two$v81, convert.factor)
trial.one.two$v82 <- sapply(trial.one.two$v82, convert.factor)

head(trial.one.two)
  v79 v81 v82 Q.One Q.Two Q.Three
2   3   2   3     3     2       3
3   1   1   3     1     1       3
4   2   4   4     2     4       4
5   1   1   4     1     1       4
6   2   1   2     2     1       2
8   1   2   1     1     2       1

您可以按照以下方式進行操作

convert.factor <- function(val){
  if(val == "Agrees a lot"){
    return(1)
  } else if(val == "Agrees a little") {
    return(2)
  } else if(val == "Disagrees a little") {
    return(3)
  } else if(val == "Disagrees a lot") {
    return(4)
  }
}

trial.one.two$v79 <- sapply(trial.one.two$v79, convert.factor)
trial.one.two$v81 <- sapply(trial.one.two$v81, convert.factor)
trial.one.two$v82 <- sapply(trial.one.two$v82, convert.factor)

另外,如果您只是在尋找人們回答每個類別的頻率,您可以執行以下操作:

table(trial.one.two$v79)

請注意,在這種情況下,沒有理由先轉換變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM