簡體   English   中英

如何使用數字和字符列創建數據框?

[英]How to create a data frame with numeric and character columns?

我正在嘗試構建一個由三個字符變量和一個數字變量組成的數據框。 當我運行以下代碼時,我得到一個四列矩陣,但得分變量不再是數字,並且分數被視為因子。

school<-c("NYU", "BYU", "USC", "FIT", "UNH","UCLA","USF","Columbia")
state<-c("NY","UT","CA","NY","NY","CA", "CA","NY")
measure<-c("MSAT","MSAT","GPA","MSAT","MSAT","GPA","GPA","GPA")
score<-c(500, 490, 2.9, 759, 550, 1.2, 3.1, 3.2)
data<-cbind(school,state, measure,score)

如果我跑

data1<-data.frame(cbind(school,state, measure,score))

我得到一個數據框,其中score仍然是一個因素。 如何構建此數據框以使得score為數字?

要構建由三個字符變量和一個數字變量組成的數據框,需要在data.frame()函數中指定: stringsAsFactors=FALSE

school<-c("NYU", "BYU", "USC")
state<-c("NY","UT","CA")
measure<-c("MSAT","MSAT","GPA")
score<-c(500, 490, 2.9)
df<-data.frame(school,state, measure,score,  stringsAsFactors=FALSE)

這是結果:

summary(df)
school             state             measure              score      
Length:3           Length:3           Length:3           Min.   :  2.9  
Class :character   Class :character   Class :character   1st Qu.:246.4  
Mode  :character   Mode  :character   Mode  :character   Median :490.0  
                                                         Mean   :331.0  
                                                         3rd Qu.:495.0  
                                                         Max.   :500.0  
 school<-c("NYU", "BYU", "USC", "FIT", "UNH","UCLA","USF","Columbia")
 state<-c("NY","UT","CA","NY","NY","CA", "CA","NY")
 measure<-c("MSAT","MSAT","GPA","MSAT","MSAT","GPA","GPA","GPA")
 score<-c(500, 490, 2.9, 759, 550, 1.2, 3.1, 3.2)
 data<-data.frame(school,state, measure,score)
 data
   school state measure score
     NYU    NY    MSAT 500.0
     BYU    UT    MSAT 490.0
     USC    CA     GPA   2.9
     FIT    NY    MSAT 759.0
     UNH    NY    MSAT 550.0
    UCLA    CA     GPA   1.2
     USF    CA     GPA   3.1
Columbia    NY     GPA   3.2

is.numeric(data$score)
[1] TRUE

我想這應該工作!!!

暫無
暫無

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

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