[英]Create dataframe from repeating vectors with increasing values in R
我正在努力解決可能會變得非常容易的事情。 我想要的是一些簡短而有效的代碼來創建 dataframe ,其中每列由 V1、V1 * 2、V1 * 3 等組成,直到達到設定的列數。
例如,如果我的 V1 是這樣的:
V1=rep(10000,1000)
我想要一個代碼來自動生成其他列,例如 V2 和 V3
V2=V1*2
V3=V1*3
並在 dataframe 中將它們綁定在一起以給出
d=data.frame(V1,V2,V3)
d
這應該用循環來完成嗎? 嘗試了很多東西,但不是最擅長循環的,現在我感覺很卡。
理想情況下,我希望我的向量 V1 是:
V1=rep(10000,10973)
並形成一個17列的dataframe。 謝謝!
使用sapply
創建多個列。 在這里,我創建了 17 列,其中 1 到 10 依次乘以 1、2、...、17。使用as.data.frame
轉換為data.frame
object。
sapply(1:17, function(x) x * 1:10) |>
as.data.frame()
output
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17
1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
2 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34
3 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51
4 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68
5 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85
6 6 12 18 24 30 36 42 48 54 60 66 72 78 84 90 96 102
7 7 14 21 28 35 42 49 56 63 70 77 84 91 98 105 112 119
8 8 16 24 32 40 48 56 64 72 80 88 96 104 112 120 128 136
9 9 18 27 36 45 54 63 72 81 90 99 108 117 126 135 144 153
10 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170
在您的情況下,您需要:
sapply(1:17, function(x) x * rep(10000, 10973)) |>
as.data.frame()
我們可以使用outer
as.data.frame( outer(1:10, 1:17))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.