Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.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,我正试图解决R中“泰坦尼克号”数据集的一个问题 在该数据中,最后一列给出了观测频率(“频率”列)。 例如,第三行表示频率=35,这意味着这一行将重复35次 因此,我正在编码一个新的数据帧,其中所有频率大于0的行都被打印了那么多次(行号3被追加到新的数据帧中,35次) 新数据帧中的总行数=2201,这是频率列中所有值的总和 我使用了一个长度为2201的字符向量来存储第一列“Class”的所有值,我在其中添加值 我已经编写了以下代码- data(Titanic) # View(Titanic) #

我正试图解决R中“泰坦尼克号”数据集的一个问题

在该数据中,最后一列给出了观测频率(“频率”列)。 例如,第三行表示频率=35,这意味着这一行将重复35次

因此,我正在编码一个新的数据帧,其中所有频率大于0的行都被打印了那么多次(行号3被追加到新的数据帧中,35次)

新数据帧中的总行数=2201,这是频率列中所有值的总和

我使用了一个长度为2201的字符向量来存储第一列“Class”的所有值,我在其中添加值

我已经编写了以下代码-

data(Titanic)
# View(Titanic)

# create a data frame out of 'Titanic' data frame-
T <- as.data.frame(Titanic, stringsAsFactors = FALSE)

# cat("Total # of observations - ", sum(T$Freq))    # O/P = 2201
n <- sum(T$Freq)


# full_titanic <- data.frame(Class = character(n), Sex = character(n), Age = character(n), Survived = character(n), stringsAsFactors=FALSE)

full_Class <- character(n)  # create an array of 2201 character objects

for(i in 1:nrow(T))
{
    if(T$Freq[i] > 0)
    {
        cnt = T$Freq[i]
        # repeating_val <- T$Class[i]
        j <- 0

        while(j < cnt)
        {
            # full_Class[i] <- repeating_val
            full_Class[i + j] <- T$Class[i]
            # cat("T$Class[", i, "] = ", T$Class[i], "\n")
            # cat("Repeating for i = ", i, "\n")
            j <- j + 1
        }
    }
    else
    {
        full_Class[i] <- T$Class[i]
    }

    # cat("i = ", i, "\n")
}
怎么了

谢谢

这有帮助吗

T1<-T[T$Freq==0,] # data with zero frequency
T2<-T[rep(row.names(T),T$Freq),] #data with nonzero frequency
T3<-rbind(T1,T2) #full data 
rownames(T3) <- 1:nrow(T3) #reset row index of full data

t1假设数据位于
d1
中,并且删除了
Freq==0的行:
d1[rep(1:nrow(d1),d1$Freq),]
删除了
Freq==0
行的数据集,我将丢失这些行。我想获得一个包含所有数据的新数据集。如何将某个内容重复0次?不重复,只包含它。有8行是-1 2 4 5 6 8 20 24(其中'Freq==0'),然后我建议你在你的问题中编辑这句话:“因此,我正在编码一个新的数据帧,其中所有频率>0的行都被多次打印(第3行被追加到新的数据帧中,35次)。”只需添加一个更改=>
actual\u titanic
T1<-T[T$Freq==0,] # data with zero frequency
T2<-T[rep(row.names(T),T$Freq),] #data with nonzero frequency
T3<-rbind(T1,T2) #full data 
rownames(T3) <- 1:nrow(T3) #reset row index of full data