gpt4 book ai didi

arrays - R 中长度不同的数组的数组

转载 作者:行者123 更新时间:2023-12-02 17:51:48 27 4
gpt4 key购买 nike

我使用 R 进行统计分析。我想根据 ID 列将数据分组到一个数组中。这导致具有唯一 ID 的数组,其中每个单元格包括对应 ID 的数据数组。由于每个ID的数据数量不相似,因此每个单元格中的每个数组的长度不同。

所以我想知道如何使用 R 创建长度不同的数组数组?

我已经有了以下代码,但出现错误:

#number of unique IDs
size<-unique(data[,1]);


for (i in 1:length (gr))
{
index<- which(data[,1]==gr[i]);
data_c[[i,1]]<-data[index,];
}

这是错误

more elements supplied than there are to replace

预先感谢您的任何评论。

我通过一个例子解释我的问题:

我有以下数据,称为 DATA_ALL:

DATA_ALL[]=
id age T1 T2 T3 T4
1 20 1 0 0 0
1 20 NA 0 NA 0
1 20 0 0 0 0
5 30 1 NA 0 0
5 30 0 0 0 1
6 40 0 1 0 0

我想将每个id的数据分组并全部放入一个数组(数组的数组)中:

DATA_GROUPED []=
id data
1 1 X1[]=[an array includes all data from DATA_ALL where the id=1]
2 5 X2[]=[an array includes all data from DATA_ALL where the id=5]
3 6 X3[]=[an array includes all data from DATA_ALL where the id=6]

请注意X1!=X2!=X3的长度

那么我如何创建 DATA_GROUPED[] 矩阵?

最佳答案

几乎不可能回答与您的代码相关的问题,但总的来说,我认为您想要做的是创建一个向量列表,一个有点像这样:

one<-letters[1]
two<-letters[2:3]
three<-letters[4:6]
combined<-list(one=one, two=two, three=three)

现在请确保正确使用索引,最好使用 [[:

for(i in 1:length(combined))
{
cat("The contents of item", names(combined)[i], "are:", combined[[i]], "\n")
}

输出:

The contents of item one are: a 
The contents of item two are: b c
The contents of item three are: d e f

编辑(以下编辑问题):

split.data.frame(DATA_ALL, DATA_ALL[,1])

检查?split并记下详细信息中的第一段。

请注意,这确实创建了一个矩阵/数组列表。

关于arrays - R 中长度不同的数组的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7268506/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com