R 如何在不同表单之间转换数据?
Data1是web上的一个,R 如何在不同表单之间转换数据?,r,R,Data1是web上的一个, 当我得到数据1时,我如何得到表(命名为data2),如下所示: , , Age = Child, Survived = No Sex Class Male Female 1st 0 0 2nd 0 0 3rd 35 17 Crew 0 0 当我有如下数据2时: ,年龄=儿童,存活=否 Sex Class Male Female 1
当我得到数据1时,我如何得到表(命名为data2),如下所示:
, , Age = Child, Survived = No
Sex
Class Male Female
1st 0 0
2nd 0 0
3rd 35 17
Crew 0 0
当我有如下数据2时:
,年龄=儿童,存活=否
Sex
Class Male Female
1st 0 0
2nd 0 0
3rd 35 17
Crew 0 0
, , Age = Adult, Survived = No
Sex
Class Male Female
1st 118 4
2nd 154 13
3rd 387 89
Crew 670 3
, , Age = Child, Survived = Yes
Sex
Class Male Female
1st 5 1
2nd 11 13
3rd 13 14
Crew 0 0
, , Age = Adult, Survived = Yes
Sex
Class Male Female
1st 57 140
2nd 14 80
3rd 75 76
Crew 192 20
如何将数据2转换为数据1
1.将数据1转换为数据2我可以做部分工作
url <- 'http://stats.math.uni-augsburg.de/Mondrian/Data/Titanic.txt'
data <- read.table(url,T)
data[data$Age=="Child" & data$Survived =="No",][,c(1,3)]
数据不是我想要的。泰坦尼克号是一个“表格”对象,因此您需要对其进行一点探索,以了解您所看到的内容:
> str(Titanic)
table [1:4, 1:2, 1:2, 1:2] 0 0 35 0 0 0 17 0 118 154 ...
- attr(*, "dimnames")=List of 4
..$ Class : chr [1:4] "1st" "2nd" "3rd" "Crew"
..$ Sex : chr [1:2] "Male" "Female"
..$ Age : chr [1:2] "Child" "Adult"
..$ Survived: chr [1:2] "No" "Yes"
> dim(Titanic)
[1] 4 2 2 2
> dimnames(Titanic)
$Class
[1] "1st" "2nd" "3rd" "Crew"
$Sex
[1] "Male" "Female"
$Age
[1] "Child" "Adult"
$Survived
[1] "No" "Yes"
使用这些dim
s和dimnames
提取所需的表格部分:
> Titanic[,,'Child','No']
Sex
Class Male Female
1st 0 0
2nd 0 0
3rd 35 17
Crew 0 0
对于从web加载的数据,只需将最后一行代码包装到表中
:
table(data[data$Age=="Child" & data$Survived =="No",][,c(1,3)])
也许我误解了你的问题,但你似乎想知道如何指定多维表格中所列内容的顺序
如果是这种情况,请尝试以下操作(第一行,第二列,第三维度(年龄),第四维度(存活)):
将重新创建的数据的摘要
与原始数据的摘要
进行比较:
summary(X)
# Class Sex Age Survived
# Crew :885 Female: 470 Adult:2092 No :1490
# First :325 Male :1731 Child: 109 Yes: 711
# Second:285
# Third :706
summary(data)
# Class Age Sex Survived
# Crew :885 Adult:2092 Female: 470 No :1490
# First :325 Child: 109 Male :1731 Yes: 711
# Second:285
# Third :706
再说一次,我是在黑暗中拍摄的,因为你的问题不是很清楚。对不起 你知道泰坦尼克号自动包含在R中,对吗?因此,无需从url读取它…我只想学习R的知识来转换数据。将quote=FALSE
放入write.csv
调用中以消除结果文件中的引号。您可以从泰坦尼克号获得泰坦尼克号的子数据,如何从csv文件中获取泰坦尼克号表格?如何从泰坦尼克号表格中获取csv文件?如上所述,Titanic
已在R中。只需在控制台中键入Titanic
。查看write.csv
以将其写入csv文件。@这是一本书,与您要做的是一致的吗?
data2 <- table(data[c("Class", "Sex", "Age", "Survived")])
## table(data[c(1, 3, 2, 4)])
data2
# , , Age = Adult, Survived = No
#
# Sex
# Class Female Male
# Crew 3 670
# First 4 118
# Second 13 154
# Third 89 387
#
# <<SNIP>>
#
#
# , , Age = Child, Survived = Yes
#
# Sex
# Class Female Male
# Crew 0 0
# First 1 5
# Second 13 11
# Third 14 13
X <- data.frame(data2)
X <- X[rep(rownames(X), X$Freq), -length(X)]
summary(X)
# Class Sex Age Survived
# Crew :885 Female: 470 Adult:2092 No :1490
# First :325 Male :1731 Child: 109 Yes: 711
# Second:285
# Third :706
summary(data)
# Class Age Sex Survived
# Crew :885 Adult:2092 Female: 470 No :1490
# First :325 Child: 109 Male :1731 Yes: 711
# Second:285
# Third :706