如何用特定值填充列中的一系列单元格?

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(.)))

【讨论】:

以上是关于如何用特定值填充列中的一系列单元格?的主要内容,如果未能解决你的问题,请参考以下文章

当必须使用同一列中的不同值填充单元格时,如何填写该列中的空白单元格?

Pandas 用 NaN 值填充列中的单元格,从行中的其他单元格中获取值

在列中查找值,填充'直到非空白单元格

使用另一列中的值填充空白 Excel 单元格?

Excel如何用文本填充所有选定的空白单元格

如果绑定属性具有特定值,如何用圆圈覆盖单元格的内容?