Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何转换泰坦尼克号数据集_R - Fatal编程技术网

R 如何转换泰坦尼克号数据集

R 如何转换泰坦尼克号数据集,r,R,请允许我将泰坦尼克号数据集转换成一个表示为Tita的数据集,其中每条线路都是乘客,您将根据每条单独线路的频率生成该数据集。例如,如果我有一行来自《泰坦尼克号》,其中年龄=孩子,性别=男性,频率=11,那么在Tita中生成11行,其中年龄是孩子,性别是男性。 Tita应该只包括四个属性——频率属性将被消除。 我应该使用从1到4的循环和cbind函数,它连接属性以形成数据集。 在每次迭代中,我都应该通过复制泰坦尼克号的每个Freq值来构建它的属性​​使用rep函数的次数。一个选项是将4D数组融合到2

请允许我将泰坦尼克号数据集转换成一个表示为Tita的数据集,其中每条线路都是乘客,您将根据每条单独线路的频率生成该数据集。例如,如果我有一行来自《泰坦尼克号》,其中年龄=孩子,性别=男性,频率=11,那么在Tita中生成11行,其中年龄是孩子,性别是男性。 Tita应该只包括四个属性——频率属性将被消除。 我应该使用从1到4的循环和cbind函数,它连接属性以形成数据集。 在每次迭代中,我都应该通过复制泰坦尼克号的每个Freq值来构建它的属性​​使用rep函数的次数。

一个选项是将4D数组融合到2D data.frame中,然后使用uncount根据“value”列复制行

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