我知道这已被问到一堆,但我有麻烦理解我发现的东西。我正在寻找在R中创建一个固定长度的双精度数组数组,对于这个数据什么是正确的声明?我觉得希望能够推动元素融入到这些阵列,像array[1][]=0.1
,array[2][]=0.2
等R空阵列的固定长度阵列
回答
一种方法是做到这一点:
list_a<-vector("list",number_of_vectors)
然后设置使用
list_a[[i]]<-c(list_a[[i]],num_to_push_back);
每个列表项每个i
等。
您可以在列表中生长的载体 - 但它是不是真的建议在R
成长的东西...
然后,你可以为你的阵列做list_a[[a]][b]
。但语法是悲剧性的,我敢打赌,在丙泊酚上的表现会比杰克逊慢。
另一种避免使用不规则数组的“R-idiomatic”方法可能是预先分配(或创建/不管)尺寸大于最大向量长度的矩阵。较短向量的缺失值可以用NA
填充 - R中的许多/大多数功能被设计为应对NA
。或者在使用矢量时仅使用功能na.omit
。例如
Not_a_ragged_array=matrix(NA,10,10) #a 10 by 10 matrix filled with NAs
#fill each column with a vector of random numbers, of random length
num_rows=sample.int(9,10,replace=TRUE); for(i in 1:10){Not_a_ragged_array[1:num_rows[i],i]=rbinom(num_rows[i],10,0.8)}
Not_a_ragged_array
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
# [1,] 8 9 7 8 7 10 8 7 9 9
# [2,] 8 10 NA 6 8 9 8 NA 8 6
# [3,] 7 7 NA 10 7 9 9 NA 9 9
# [4,] NA 9 NA 6 10 7 NA NA 6 9
# [5,] NA 5 NA 9 7 6 NA NA NA 9
# [6,] NA 8 NA 9 9 NA NA NA NA 8
# [7,] NA NA NA 9 NA NA NA NA NA 9
# [8,] NA NA NA 8 NA NA NA NA NA 8
# [9,] NA NA NA NA NA NA NA NA NA NA
#[10,] NA NA NA NA NA NA NA NA NA NA
as.vector(na.omit(Not_a_ragged_array[,1])) #get individual vectors like this
#[1] 8 8 7
这是我一直在寻找的功能。不太熟悉R数据类型和性能 - 是否有一个更明智的方法来完成这一点? – 2014-12-08 00:18:50
这没关系。一般人在不熟悉答案的时候会提出问题......所以它的预期。我认为这是R中唯一的(其他方法是这种变体的)方式来创建你正在寻找的对象(不规则数组)。你可以在这里找到相同主题的变体:http://www.r-bloggers.com/efficient-ragged-arrays-in-r-and-rcpp/。要确定你的*实际*问题是否真的需要使用不规则数组,你需要更多地了解你的问题。我已经编辑了一个更加“R习惯”的建议,以避免参差不齐的数组。 – 2014-12-08 10:20:05
- 1. 固定长度BitArrays阵列
- 2. 固定长度阵列格式
- 3. 长度阵列阵列
- 4. R:阵列 - 还原长度(总结)
- 5. 在javascript中空阵列的长度
- 6. 在红宝石由固定长度分割的阵列
- 7. 2D阵列的长度[i]
- 8. 使用长度()的阵列
- 9. 宣布阵列的长度
- 10. 查找阵列的长度
- 11. 添加双型阵列未定义长度阵列
- 12. 确定阵列分配的长度
- 13. 确定矩阵中的列长度
- 14. 固定大小的阵列不固定
- 15. c打印阵列长度
- 16. CUDA推力阵列长度
- 17. 阵列最大长度
- 18. 查找阵列长度incakephp
- 19. 阵列长度问题
- 20. 确定矢量阵列长度
- 21. 指定阵列长度调用
- 22. 使用矩阵[0]。长度为呈现空2D阵列
- 23. 获取k-1的长度ķ阵列的长度子集阵列
- 24. 固定大小阵列
- 25. 遍历固定阵列
- 26. 垫numpy的阵列具有固定阵列恒定
- 27. 得到一个阵列VBA的每个子阵列的长度
- 28. 二维阵列行列长度
- 29. 索引阵列:1到阵列的长度
- 30. 具有可变内部阵列长度的2D阵列JAVA
这与N列的两行矩阵有何不同?定义一个长度为N的列表并用两个元素向量填充它也很容易。 – 2014-12-06 23:03:31
我在循环内推动元素,所以它最终会成为N个不同长度的数组。 – 2014-12-06 23:28:58
然后它只是一个列表。并发症在哪里? – 2014-12-07 00:01:17