iT邦幫忙

0

如何使用R語言使數值重複出現?

有一資料如下:
⠀戶內人口數⠀⠀⠀個人可支配所得
⠀⠀⠀1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀100
⠀⠀⠀⠀3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀200
⠀⠀⠀⠀1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀300
⠀⠀⠀⠀2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀400
⠀⠀⠀⠀1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀500
請問有甚麼方法可以使我的資料呈現為
100,
200,
200,
200,
300,
400,
400,
500呢?

抱歉我是R新手,如果問題敘述有不足請告訴我!
謝謝大家的幫忙!

20191205 16:41 更

這是我實際要用的資料,
總共有16528筆,我希望跑出的資料應概要有50184筆,
(-68970,-66995,-5884,-4339,-4339,2839.5.....)
抱歉原本不太會用圖片功能,
舉的例子也表達得不太好,
請各位高手救救我!

marlin12 iT邦研究生 5 級 ‧ 2019-12-05 19:12:53 檢舉
df <- data.frame(
戶內人口數 = c( 1, 3, 1, 2, 1 ),
個人可支配所得 = c( 100, 200, 300, 400, 500 )
)

cat( rep( df$個人可支配所得, df$戶內人口數 ), sep=",\n" )

1 個回答

1
海綿寶寶
iT邦大神 1 級 ‧ 2019-12-05 15:36:16

R 皮 C 骨的答案

選我最佳解答

population <- c(1, 1, 1, 2, 2, 3)
income <- c(-68970.00, -66995.00, -5884, -4339, 2839.50, 28365.00)
for (i in c(1:length(population))) {
    for (j in c(1:population[c(i)])) {
        if ((i==1)&(j==1)) {
        } else {
            cat(",")
        }
        cat(income[c(i)])
    }
}

還有改問題的
那我也改答案

population <- c(1, 1, 1, 2, 2, 3)
income <- c(-68970.00, -66995.00, -5884, -4339, 2839.50, 28365.00)
for (i in c(1:length(population))) {
    for (j in c(1:population[c(i)])) {
        if ((i==length(population))&(j==population[c(i)])) {
            comma <- "呢?"
        } else {
            comma <- ","
        }
        cat(sprintf("%.1f%s\n",income[c(i)],comma))
    }
}

C IS GOOOOOOOOOOOOOOOD

我只是重新排版一下XD
謝謝你,但我發現我的題目中舉的例子好像跟我的實際資料不一樣,
我等等會再更新一下,不好意思麻煩您了

程式已更新

我要發表回答

立即登入回答