如何用特定值填充列中的一系列单元格?
Posted
技术标签:
【中文标题】如何用特定值填充列中的一系列单元格?【英文标题】:How to fill a range of cells within a column with particular values? 【发布时间】:2022-01-22 09:27:48 【问题描述】:我在R
中有一个df
,对 24 个变量进行了 15,767 次观察。下面是一个可重现的例子:
data <- data %>% add_column(year = NA)
我现在想用某些值填充该列。特别是,我想将“2011”添加到第 1 到 18 行,将“2012”添加到第 19 到 200 行,依此类推。最简单的方法是什么?我在网上找不到简单的解决方案。
【问题讨论】:
这个例子不是一个可重现的例子。您需要与dput(head(data))
共享您的数据集的可重现样本,以便为贡献者提供可以帮助您的东西。
【参考方案1】:
这很难重现,但如果你有
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
(没有严格的理由以data.frame
开头,它适用于文字,例如rep(2011:2012, times = c(18, 182))
,但有时框架是可视化/编辑/维护此类内容的便捷方式。交给你.)
我怀疑应该存在更好的方法,但作为实际数据的条件。
【讨论】:
【参考方案2】:也许是这样的?
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(.)))
【讨论】:
以上是关于如何用特定值填充列中的一系列单元格?的主要内容,如果未能解决你的问题,请参考以下文章
当必须使用同一列中的不同值填充单元格时,如何填写该列中的空白单元格?