[英]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.