R 如何转换泰坦尼克号数据集
请允许我将泰坦尼克号数据集转换成一个表示为Tita的数据集,其中每条线路都是乘客,您将根据每条单独线路的频率生成该数据集。例如,如果我有一行来自《泰坦尼克号》,其中年龄=孩子,性别=男性,频率=11,那么在Tita中生成11行,其中年龄是孩子,性别是男性。 Tita应该只包括四个属性——频率属性将被消除。 我应该使用从1到4的循环和cbind函数,它连接属性以形成数据集。 在每次迭代中,我都应该通过复制泰坦尼克号的每个Freq值来构建它的属性使用rep函数的次数。一个选项是将4D数组融合到2D data.frame中,然后使用uncount根据“value”列复制行R 如何转换泰坦尼克号数据集,r,R,请允许我将泰坦尼克号数据集转换成一个表示为Tita的数据集,其中每条线路都是乘客,您将根据每条单独线路的频率生成该数据集。例如,如果我有一行来自《泰坦尼克号》,其中年龄=孩子,性别=男性,频率=11,那么在Tita中生成11行,其中年龄是孩子,性别是男性。 Tita应该只包括四个属性——频率属性将被消除。 我应该使用从1到4的循环和cbind函数,它连接属性以形成数据集。 在每次迭代中,我都应该通过复制泰坦尼克号的每个Freq值来构建它的属性使用rep函数的次数。一个选项是将4D数组融合到2
library(dplyr)
library(tidyr)
data(Titanic)
Tita <- reshape2::melt(Titanic) %>%
uncount(value) %>%
as_tibble
Tita
# A tibble: 2,201 x 4
# Class Sex Age Survived
# <fct> <fct> <fct> <fct>
# 1 3rd Male Child No
# 2 3rd Male Child No
# 3 3rd Male Child No
# 4 3rd Male Child No
# 5 3rd Male Child No
# 6 3rd Male Child No
# 7 3rd Male Child No
# 8 3rd Male Child No
# 9 3rd Male Child No
#10 3rd Male Child No
# … with 2,191 more rows
1 as.data.frame/rep将泰坦尼克号阵列转换为数据帧tdf,然后对每个行号和频率使用rep和下标tdf重复该行号和次数。没有使用任何软件包
tdf <- as.data.frame(Titanic)
Tita <- tdf[rep(1:nrow(tdf), tdf$Freq), -5]
2 tableinv从我们的检查中,我们意识到问题要求的基本上是table函数的倒数,所以通过谷歌搜索,我们在这里找到了tableinv:
将该函数复制并粘贴到R中,我们可以编写:
Tita2 <- tableinv(Titanic)
我不明白你在问什么。再看一看,;代码和所需的输出将非常有用。这也包括你的数据,你从哪里得到泰坦尼克号的数据?我看到它从不同的地方以不同的格式出现sources@camille,泰坦尼克号上有R.@G.Grothendieck,我知道,但我也看到它来自其他地方,例如从Kaggle教程下载的CSV。由于问题中没有数据或代码,我们不知道他们是否使用R附带的4表数组版本或其他更简单的版本。请举一个例子进行更好的解释。谢谢,这就是我们的目的
all.equal(Titanic, table(Tita))
## [1] TRUE
Tita2 <- tableinv(Titanic)
all.equal(Tita, Tita2, check.attributes = FALSE)
## [1] TRUE