我正在尝试将以下数据直接输入 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
我的代码是:
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)
答案 0 :(得分: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
答案 1 :(得分:1)
使用tidyverse的Tribble (有关更多详细信息,请参见tidyverse tibble)
install.packages("tidyverse")
library(tidyverse)
ctable <-
tribble(
~Area, ~School, ~Coffeeshop, ~Hospitals, ~Parks, ~Total,
"Washington", 142, 120, 20, 20, 302,
"Seattle", 120, 140, 30, 40, 330,
"Total", 262, 260, 50, 60, 631
)
ctable
# A tibble: 3 x 6
Area School Coffeeshop Hospitals Parks Total
<chr> <dbl> <dbl> <dbl> <dbl> <dbl>
1 Washington 142 120 20 20 302
2 Seattle 120 140 30 40 330
3 Total 262 260 50 60 631