如何直接输入数据以生成表示列联表的data.frame?

Pir*_*ate 2 r contingency

我试图直接将以下数据输入R(代表一个列联表)

Area        School    Coffeshop    Hospitals    Parks    Totatl  
Washington     142          120           20       20       302   
Seattle        120          140           30       40       330 
Total          262          260           50       60       632
Run Code Online (Sandbox Code Playgroud)

我的代码是这样的:

n<-c("Area","School","Cofeeshop","Hospitals","Parks","Total") 
x<-c("Washington",142,120,20,20,302)
y<-c("Seattle",120,140,30,40,330)
z<-c("Total",262,260,50,60,631)
data<-cbind(n,x,y,z)
data<-data.frame(data)
Run Code Online (Sandbox Code Playgroud)

mne*_*nel 6

您的代码中充满了基本的语法错误,请尝试直接从您使用的脚本中进行复制和粘贴.(我真的希望你这里没有这样做).

如果在同一向量中组合字符和数字变量,它将创建一个字符向量,这不是您想要的.

尝试类似的东西

vec_names <-c("School", "Cofeeshop", "Hospitals", "Parks", "Total") 
Washington <- c(142, 120, 20, 20, 302)
Seattle<-c(120, 140, 30, 40, 330)
Total <-  c(262, 260, 50, 60, 631)

ctable <- rbind(Washington, Seattle, Total)
colnames(ctable) <- vec_names

# ctable is a matrix at the moment, with the rownames identifying 
# Washington etc

ctable_df <- data.frame(ctable)

# ctable_df is now a data.frame.
# if you want area as a column in your data.frame (not just row.names)
CTABLE <- data.frame(area= rownames(ctable_df), ctable_df, row.names = NULL)
CTABLE
        area School Cofeeshop Hospitals Parks Total
1 Washington    142       120        20    20   302
2    Seattle    120       140        30    40   330
3      Total    262       260        50    60   631
Run Code Online (Sandbox Code Playgroud)