簡體   English   中英

R包含數據框行的二維數組

[英]R two dimensional array containing dataframe rows

因此,我最近開始與R合作進行我感興趣的研究,並且我試圖創建一個包含數據幀行的多維數組。

我有一個包含許多列的大型數據框,這些列可以是數字,也可以是字符串。 為了簡單起見,讓我們使用3列:thread_id:1到10100之間的整數。user_id:給用戶的整數。 post_name:一個字符串,為我們提供帖子標題

我想創建一個數據結構,最好是一個二維數組,其中在第一個維度上我們有thread_id,在第二個維度上我們有一個來自數據幀的行。

因此,作為

DataSet[1][1], I'd get thread_id: 1, user_id: 100, post_name: "some name 1"
DataSet[1][2], I'd get thread_id: 1, user_id: 101, post_name: "some name 2"
DataSet[5][10], I'd get thread_id: 5, user_id: 900, post_name: "some name 3"

在R中可以這樣做嗎? 我只有Java的使用經驗,可以用對象數組解決。

感謝您的所有幫助!

例如,如果thread_id的取值為1到5,則可以使用:

mylist <- list()
for(i in 1:5)
    mylist[[i]] <- myData[thread_id==i,]

您當然可以使用max(myData$thread_id)而不是5 ...

這是您的替代選擇。

假設:df是一個data.frame

convert.to.str <- function(df){
    df_col <- names(df)
    val <- unlist(df)

    ans <- paste(df_col,val,sep=': ')

    final_ans <- paste(ans,collapse=', ')
}

int_ans <- data.frame(thread_id = df$thread_id, ans = apply(df,1,convert.to.str), nrow2=1:nrow(df))

library(reshape2)

int_ans2 <- dcast(int_ans,thread_id ~ nrow2,value.var='ans')

DataSet <- int_ans2[2:ncol(int_ans2)]

dimnames(DataSet)[[1]] <- int_ans2$thread_id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM