Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R更改变量的因子级别,并删除旧因子_R_Spss_Levels - Fatal编程技术网

R更改变量的因子级别,并删除旧因子

R更改变量的因子级别,并删除旧因子,r,spss,levels,R,Spss,Levels,我有一个很大的数据集,它是从SPSS文件读取的。它包含多个行和列,从许多小型SPSS文件中读取。SPSS文件包含一些错误,我想在R中更正。当读取数据时,它在因子水平上具有所有噪声,但SPSS中的数据是正常的。我无法更改SPSS中许多单个文件中的因子级别。以下是我拥有的一小部分数据样本 data a b c d e [1] 3 5 1 Very dissatisfied 5

我有一个很大的数据集,它是从
SPSS
文件读取的。它包含多个行和列,从许多小型
SPSS
文件中读取。SPSS文件包含一些错误,我想在R中更正。当读取数据时,它在因子水平上具有所有噪声,但SPSS中的数据是正常的。我无法更改SPSS中许多单个文件中的因子级别。以下是我拥有的一小部分数据样本

data
    a  b                   c                  d    e
[1] 3  5 1 Very dissatisfied                  5    5
[2] 8  3                  10         Don't Know    1
[3] 7  5                   3                  8    6
[4] 3  5                   9                  6   99
[5] 9  4                   8  10 Very Satisfied    3
[6] 5 NA       99 Don't Know     Very Satisfied   10

levels(data[,1])
 [1] "1 Very Dissatisfied" "2"                 "3"             "4"                
 [5] "5"                   "6"                 "7"             "8"                
 [9] "9"                   "1" "10 Very Satisfied" "99 Don't know"
[12] "1 Very Bad"        "99"       "2 Satisfied"             "10"
这些级别包含许多错误。我想把它们改成下面这样

x<-factor()
x<-ordered(x,levels=c("1 Very Dissatisfied","2 Satisfied","3 Satisfied","4 Satisfied",
"5 Satisfied","6 Satisfied","7 Satisfied","8 Satisfied","9 Satisfied","10 Very Satisfied",
"99 Dont Know"))

levels(x)
[1] "1 Very Dissatisfied"  "2 Satisfied"         "3 Satisfied"    "4 Satisfied"      
[5] "5 Satisfied"          "6 Satisfied"         "7 Satisfied"    "8 Satisfied"      
[9] "9 Satisfied"          "10 Very Satisfied"  "99 Dont Know"

x我建议保持SPSS属性不变,不使用SPSS中的值标签:

temp <- read.spss(file, use.value.labels = FALSE)

我建议不要使用SPSS中的值标签,保持SPSS属性不变:

temp <- read.spss(file, use.value.labels = FALSE)

我建议不要使用SPSS中的值标签,保持SPSS属性不变:

temp <- read.spss(file, use.value.labels = FALSE)

我建议不要使用SPSS中的值标签,保持SPSS属性不变:

temp <- read.spss(file, use.value.labels = FALSE)
  • 清理数据。这只会留下数字和NA

    data=apply(data,1:2,function(x) gsub("[^0-9]", "",x))
    
    数据如下所示:

          a   b   c    d    e   
    
    [1,] "3" "5" "1"  "5"  "5"     
    [2,] "8" "3" "10" "99" "1"   
    [3,] "7" "5" "3"  "8"  "6"   
    [4,] "3" "5" "9"  "6"  "99"  
    [5,] "9" "4" "8"  "10" "3"   
    [6,] "5" NA  "99" "10" "10"  
    
  • 重新编码你的字符串

    # Install the car package
    install.packages("car")
    
    
    # Load the car package     
    library("car")
    
    replace_string=function(x) {  
    recode(x,'1="1 Very Dissatisfied";  
              2="2 Satisfied";  
              3="3 Satisfied";  
              4="4 Satisfied";   
              5="5 Satisfied";  
              6="6 Satisfied";  
              7="7 Satisfied";  
              8="8 Satisfied";  
              9="9 Satisfied";  
             10="10 Very Satisfied";   
             99="99 Dont Know"')  
     }  
    
     data=apply(data,1:2,replace_string)  
    
  • 清理数据。这只会留下数字和NA

    data=apply(data,1:2,function(x) gsub("[^0-9]", "",x))
    
    数据如下所示:

          a   b   c    d    e   
    
    [1,] "3" "5" "1"  "5"  "5"     
    [2,] "8" "3" "10" "99" "1"   
    [3,] "7" "5" "3"  "8"  "6"   
    [4,] "3" "5" "9"  "6"  "99"  
    [5,] "9" "4" "8"  "10" "3"   
    [6,] "5" NA  "99" "10" "10"  
    
  • 重新编码你的字符串

    # Install the car package
    install.packages("car")
    
    
    # Load the car package     
    library("car")
    
    replace_string=function(x) {  
    recode(x,'1="1 Very Dissatisfied";  
              2="2 Satisfied";  
              3="3 Satisfied";  
              4="4 Satisfied";   
              5="5 Satisfied";  
              6="6 Satisfied";  
              7="7 Satisfied";  
              8="8 Satisfied";  
              9="9 Satisfied";  
             10="10 Very Satisfied";   
             99="99 Dont Know"')  
     }  
    
     data=apply(data,1:2,replace_string)  
    
  • 清理数据。这只会留下数字和NA

    data=apply(data,1:2,function(x) gsub("[^0-9]", "",x))
    
    数据如下所示:

          a   b   c    d    e   
    
    [1,] "3" "5" "1"  "5"  "5"     
    [2,] "8" "3" "10" "99" "1"   
    [3,] "7" "5" "3"  "8"  "6"   
    [4,] "3" "5" "9"  "6"  "99"  
    [5,] "9" "4" "8"  "10" "3"   
    [6,] "5" NA  "99" "10" "10"  
    
  • 重新编码你的字符串

    # Install the car package
    install.packages("car")
    
    
    # Load the car package     
    library("car")
    
    replace_string=function(x) {  
    recode(x,'1="1 Very Dissatisfied";  
              2="2 Satisfied";  
              3="3 Satisfied";  
              4="4 Satisfied";   
              5="5 Satisfied";  
              6="6 Satisfied";  
              7="7 Satisfied";  
              8="8 Satisfied";  
              9="9 Satisfied";  
             10="10 Very Satisfied";   
             99="99 Dont Know"')  
     }  
    
     data=apply(data,1:2,replace_string)  
    
  • 清理数据。这只会留下数字和NA

    data=apply(data,1:2,function(x) gsub("[^0-9]", "",x))
    
    数据如下所示:

          a   b   c    d    e   
    
    [1,] "3" "5" "1"  "5"  "5"     
    [2,] "8" "3" "10" "99" "1"   
    [3,] "7" "5" "3"  "8"  "6"   
    [4,] "3" "5" "9"  "6"  "99"  
    [5,] "9" "4" "8"  "10" "3"   
    [6,] "5" NA  "99" "10" "10"  
    
  • 重新编码你的字符串

    # Install the car package
    install.packages("car")
    
    
    # Load the car package     
    library("car")
    
    replace_string=function(x) {  
    recode(x,'1="1 Very Dissatisfied";  
              2="2 Satisfied";  
              3="3 Satisfied";  
              4="4 Satisfied";   
              5="5 Satisfied";  
              6="6 Satisfied";  
              7="7 Satisfied";  
              8="8 Satisfied";  
              9="9 Satisfied";  
             10="10 Very Satisfied";   
             99="99 Dont Know"')  
     }  
    
     data=apply(data,1:2,replace_string)  
    

  • 我犯错误的地方是在格雷普。我使用了
    grep(^I$,data)
    ,而不是
    grep(I,data)
    。这捕获了1和10,以及9和99。我使用了
    ^I$
    来精确匹配字符,因此
    ^9$
    只捕获了9个字符,而不是99个字符

    为了删除因子中未使用的级别并将其用作顺序变量,我在最后使用了
    ordered(data)
    ,这就解决了问题

    我使用了下面的代码来纠正自己:

    步骤1:定义因子的级别

    x<-factor()
    x<-ordered(x,levels=c("1 Very Dissatisfied","2 Satisfied","3 Satisfied","4 Satisfied","5 Satisfied","6 Satisfied","7 Satisfied","8 Satisfied","9 Satisfied","10 Very Satisfied","Dont Know"))
    

    x我犯错误的地方是grep。我使用了
    grep(^I$,data)
    ,而不是
    grep(I,data)
    。这捕获了1和10,以及9和99。我使用了
    ^I$
    来精确匹配字符,因此
    ^9$
    只捕获了9个字符,而不是99个字符

    为了删除因子中未使用的级别并将其用作顺序变量,我在最后使用了
    ordered(data)
    ,这就解决了问题

    我使用了下面的代码来纠正自己:

    步骤1:定义因子的级别

    x<-factor()
    x<-ordered(x,levels=c("1 Very Dissatisfied","2 Satisfied","3 Satisfied","4 Satisfied","5 Satisfied","6 Satisfied","7 Satisfied","8 Satisfied","9 Satisfied","10 Very Satisfied","Dont Know"))
    

    x我犯错误的地方是grep。我使用了
    grep(^I$,data)
    ,而不是
    grep(I,data)
    。这捕获了1和10,以及9和99。我使用了
    ^I$
    来精确匹配字符,因此
    ^9$
    只捕获了9个字符,而不是99个字符

    为了删除因子中未使用的级别并将其用作顺序变量,我在最后使用了
    ordered(data)
    ,这就解决了问题

    我使用了下面的代码来纠正自己:

    步骤1:定义因子的级别

    x<-factor()
    x<-ordered(x,levels=c("1 Very Dissatisfied","2 Satisfied","3 Satisfied","4 Satisfied","5 Satisfied","6 Satisfied","7 Satisfied","8 Satisfied","9 Satisfied","10 Very Satisfied","Dont Know"))
    

    x我犯错误的地方是grep。我使用了
    grep(^I$,data)
    ,而不是
    grep(I,data)
    。这捕获了1和10,以及9和99。我使用了
    ^I$
    来精确匹配字符,因此
    ^9$
    只捕获了9个字符,而不是99个字符

    为了删除因子中未使用的级别并将其用作顺序变量,我在最后使用了
    ordered(data)
    ,这就解决了问题

    我使用了下面的代码来纠正自己:

    步骤1:定义因子的级别

    x<-factor()
    x<-ordered(x,levels=c("1 Very Dissatisfied","2 Satisfied","3 Satisfied","4 Satisfied","5 Satisfied","6 Satisfied","7 Satisfied","8 Satisfied","9 Satisfied","10 Very Satisfied","Dont Know"))
    

    x有许多列作为因子从SPSS中正确读取,但仍有许多列不是正确的因子。我的问题是,我们是否可以使用SPSS中的
    use.value.labels=TRUE/FALSE
    有选择地阅读专栏以应用您的建议?如果没有这些文件,很难说。根据我的经验,我发现除策划外,应不惜一切代价避免各种因素。我更喜欢将矢量作为字符来减少麻烦,但这对我来说正是有效的。我使用这些数据来绘图,它会产生很多噪音,所以我想正确地将它们因子化。有许多列作为因子从SPSS中正确读取,还有许多列不是正确的因子。我的问题是,我们是否可以使用SPSS中的
    use.value.labels=TRUE/FALSE
    有选择地阅读专栏以应用您的建议?如果没有这些文件,很难说。根据我的经验,我发现除策划外,应不惜一切代价避免各种因素。我更喜欢将矢量作为字符来减少麻烦,但这对我来说正是有效的。我使用这些数据来绘图,它会产生很多噪音,所以我想正确地将它们因子化。有许多列作为因子从SPSS中正确读取,还有许多列不是正确的因子。我的问题是,我们是否可以使用SPSS中的
    use.value.labels=TRUE/FALSE
    有选择地阅读专栏以应用您的建议?如果没有这些文件,很难说。根据我的经验,我发现除策划外,应不惜一切代价避免各种因素。我更喜欢将矢量作为字符来减少麻烦,但这对我来说正是有效的。我使用这些数据来绘图,它会产生很多噪音,所以我想正确地将它们因子化。有许多列作为因子从SPSS中正确读取,还有许多列不是正确的因子。我的问题是,我们是否可以使用SPSS中的
    use.value.labels=TRUE/FALSE
    有选择地阅读专栏以应用您的建议?如果没有这些文件,很难说。根据我的经验,我发现除策划外,应不惜一切代价避免各种因素。我更喜欢将向量作为字符来减少麻烦,但这正是我所需要的。我使用这些数据来绘图,它会生成l