我目前面臨的問題是我根據表中特定值的位置生成了一個行號串列。如下:
row_values <- which(table[,1] == "place of work :")
這給我留下了“作業地點”出現的所有行號的串列:
[1] 1 406 811 1216 1621 2026 2431 2836 3241 3646 4051 4456 4861 5266 5671 6076 6481 6886 7291 7696 8101 8506 8911 9316 9721 10126
[27] 10531 10936 11341 11746 12151 12556
這是總共 32 個條目。然后我還有另一個表,其中包含許多代碼(總共 32 個):
Area Code (Origin)
[1,] "E41000293"
[2,] "E41000294"
[3,] "E41000295"
[4,] "E41000296"
[5,] "E41000297"
[6,] "E41000298"
[7,] "E41000299"
[8,] "E41000300"
[9,] "E41000301"
[10,] "E41000302"
[11,] "E41000303"
[12,] "E41000304"
[13,] "E41000305"
[14,] "E41000306"
[15,] "E41000307"
[16,] "E41000308"
[17,] "E41000309"
[18,] "E41000310"
[19,] "E41000311"
[20,] "E41000312"
[21,] "E41000313"
[22,] "E41000314"
[23,] "E41000315"
[24,] "E41000316"
[25,] "E41000317"
[26,] "E41000318"
[27,] "E41000319"
[28,] "E41000320"
[29,] "E41000321"
[30,] "E41000322"
[31,] "E41000323"
[32,] "E41000324"
我需要找到一種方法將這些“區號(原點)”值粘貼到原始表中每一行的 row_values 之間,如圖所示。這些將位于我稱為“區號(目的地)”的空白欄中。即,E41000293 應位于從 1 到 405 的每一行的區號目的地列中,E41000294 應位于 406 到 810 等。
對此的任何幫助將不勝感激,因為我不知道如何最好地解決這個問題。
謝謝,喬
uj5u.com熱心網友回復:
您可以cumsum巧妙地使用以下方法來實作這一點:
library(dplyr)
table %>%
group_by(grp = cumsum(text == "place of work :")) %>% #change "text" to your column name
mutate(Area_Code = Area[grp,]) %>% #change Area to your table name
ungroup() %>%
select(-grp)
剩下要做的就是更改表名和列名以適應您的問題。
uj5u.com熱心網友回復:
這應該這樣做:
for (i in 1:length(row_values)) {
if (i == length(row_values)-1) {
table[c(row_values[i]:(row_values[i 1])),'Area Codes (Destinations)'] = Areacode[i]
} else if (i <length(row_values)-1)) {
table[c(row_values[i]:(row_values[i 1]-1)),'Area Codes (Destinations)'] = Areacode[i]
}else{}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/312504.html
下一篇:計算2個資料幀中變數之間的相關性
