- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想根据该 ID 本身前几年的组值将我的数据集的 NA 填充到组变量中。na.locf(newData, na.rm = TRUE)
部分代码不起作用。我认为这是因为输入不是数字。或者是另一回事?有谁知道如何解决这个问题?
for (i in my_data$ID){
newData = my_data[my_data$ID==i,c('ID','Year', 'group')][3]
na.locf(newData,na.rm = TRUE)
}
我的数据集非常大。但我提供这个作为我需要的样本:
structure(list(ID = c(1L, 2L, 3L, 1L, 1L, 1L), Year = c(2000L,
2000L, 2001L, 2001L, 2002L, 2003L), Group = structure(c(2L, 3L,
2L, 1L, 1L, 4L), .Label = c("", "\"A\"", "\"B\"", "\"C\""), class = "factor")), row.names = c(NA,
6L), class = "data.frame")
结果应该是这样的:
structure(list(ID = c(1L, 1L, 1L, 1L, 2L, 2L), Year = c(2000L,
2001L, 2002L, 2003L, 2000L, 2002L), Group = structure(c(1L, 1L,
1L, 3L, 2L, 2L), .Label = c("\"A\"", "\"B\"", "\"C\""), class = "factor")), row.names = c(NA,
6L), class = "data.frame")
最佳答案
正如我所说,您的问题很简单,就是您必须用 NA 替换空瓶。
with(replace(df, df == '', NA), ave(Group, ID, FUN = zoo::na.locf))
#[1] "A" "B" "A" "A" "A" "C"
将它附加回你的 df,
df$Group <- with(replace(df, df == '', NA), ave(Group, ID, FUN = zoo::na.locf))
这给出了,
ID Year Group
1 1 2000 "A"
2 2 2000 "B"
3 3 2001 "A"
4 1 2001 "A"
5 1 2002 "A"
6 1 2003 "C"
关于r - 如何将 na.locf() 用于因子 'inputs' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58853946/
我想对一个变量进行最后一次观察,但最多只能进行 2 次观察。也就是说,对于 3 个或更多 NA 的数据差距,我只会将最后一个观察结果用于接下来的 2 个观察结果,而将其余的作为 NA。 如果我使用 z
如何通过完全外连接有效地合并两个 data.table,同时通过在左侧和右侧滚动最后一个观察值 (LOCF) 来处理缺失值? 现实世界应用 - 有两个不一定交错的交易规则信号表,X、Y、持有(稀疏)
我最近需要按 id 跨时间向前和向后分布 12 个时不变变量的值。我的数据集包含 2,448,638 个观测值和 57 个变量。 这是一个可重现的讨论示例: # Load packages libra
随着时间的推移,我已经习惯了 data.table 在 r 中滚动连接的非常有用的功能。这些利用 LOCF 的操作(最后的观察结转)。不幸的是,我被迫在一个我不太熟悉的环境中工作(使用 postgre
我现在正在处理一个有很多缺失值的数据集。我正在使用 LOCF 方法来替换缺失值(因为它是重复测量)。我用过 na.locf函数来替换缺失值。这是我在创建的数据帧上所做的模拟示例 library(zoo
我有以下时间序列 > y y[c(1,2,5,9,10)] y [,1] 2011-09-04 NA 2011-09-05 NA 2011-09-06 3 201
我是 R 的新手,试图在 sparkR 中重写 R 代码。对名为 costTbl(还有 5 个其他列)的 data.table 的操作之一是 costTbl[,cost:=na.locf(cost,n
在为时间序列分析格式化数据时,一个常见的需求是通过随时间填充前向值来估算缺失值(也称为 Last-Observation-Carried-Forward/LOCF )。 虽然数据分析环境通常提供该功能
我需要使用 na.locf来自 zoo用最后观察到的值替换 NA 值的包。但是,我只需要针对特定国家/地区和变量对执行此操作。这些对是使用单独的数据框在逻辑上指定的,其示例如下所示。 Countr
我想根据该 ID 本身前几年的组值将我的数据集的 NA 填充到组变量中。na.locf(newData, na.rm = TRUE) 部分代码不起作用。我认为这是因为输入不是数字。或者是另一回事?有谁
我目前正在处理一个大型 data.table,该表具有基于 2 个引用列的某些组,然后有一个距离列,该列为每个组中的第一行定义,然后每次跳转 2 个单位。 做一个非常小的可重现的例子,我有: refe
我正在尝试将 zoo 包中的 na.locf 与使用 dplyr 的分组数据结合使用。我在这个问题上使用第一个解决方案:Using dplyr window-functions to make tra
有没有什么快速的方法可以将 DataFrame 的 NA 值转换为最后观察到的值? using DataFrames d = @data [1,NA,5,NA,NA] df = DataFrame(d
我想使用 na.locf为第一个观察值可能为零的数据帧传递非缺失值。 问题 dta % mutate_all(.funs = funs(na.locf(.))) Error in mutate_imp
我想检查 na.locf 是否有任何预先存在的技巧(来自 zoo 包),rle和 inverse.rle在 RCpp ? 我写了一个循环来实现,例如我做了na.locf(x, na.rm=FALSE,
在PostgreSQL中是否实现了数据插补方法Last Observation Carried Forward (LOCF)? 如果没有,我该如何实现这个方法? 最佳答案 下面的代码假定一个表 tbl
我已经看到了一个解决方案,但不能让它为团体工作 ( Fill NA in a time series only to a limited number ),并认为必须有一种更简洁的方法来做到这一点?
我正在尝试填写所有 NA,除了第 1 列和第 4 列的前两个 NA 以及第 2 列和第 3 列的三个 NA 以及最近的非 NA 值。这是我的数据和代码: hh<-structure(list(ka
我是一名优秀的程序员,十分优秀!