我有一個df在R與24個變數的15,767意見。下面是一個可重現的示例:
data <- data %>% add_column(year = NA)
我現在想用某些值填充該列。特別是,我想將“2011”添加到第 1 到 18 行,將“2012”添加到第 19 到 200 行,依此類推。什么是最簡單的方法來做到這一點?我在網上找不到簡單的解決方案。
uj5u.com熱心網友回復:
這很難重現,但如果你有
newvals <- data.frame(
year = c(2011L, 2012L),
lengths = c(18, 182)
)
rep(newvals$year, times = newvals$lengths)
# [1] 2011 2011 2011 2011 2011 2011 2011 2011 2011 2011 2011 2011 2011 2011 2011 2011 2011 2011
# [19] 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012
# [37] 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012
# [55] 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012
# [73] 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012
# [91] 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012
# [109] 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012
# [127] 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012
# [145] 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012
# [163] 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012
# [181] 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012
# [199] 2012 2012
(沒有嚴格的理由以 a 開頭data.frame,它適用于文字,例如 , rep(2011:2012, times = c(18, 182)),但有時框架是一種可視化/編輯/維護類似內容的便捷方式。交給你了。)
不過,我懷疑應該存在更好的方法,作為實際資料的條件。
uj5u.com熱心網友回復:
也許是這樣的?
library(dplyr)
# define your vector
my_vec = c(rep(2011, 18), rep(2012, 200-19))
# fill example dataframe with 1000 rows with your vector:
tibble(col1 = 1:1000) %>%
add_column(year = rep_len(my_vec, length.out = nrow(.)))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/388508.html
上一篇:在R中排列日期字符
