在 for 循环中使用条件来创建唯一的面板 ID

汤姆

我有一个如下所示的数据集:

# A tibble: 5,458 x 539
# Groups:   country, id1 [2,729]
   idstd   id2    xxx        id1         country  year 
   <dbl+>   <dbl> <dbl+lbl> <dbl+lbl>   <chr>   <dbl>
 1 445801   NA      NA       7          Albania  2009 
 2 542384 4616555 1163       7          Albania  2013 
 3 445802   NA      NA       8          Albania  2009 
 4 542386 4616355 1162       8          Albania  2013 
 5 445803   NA      NA      25          Albania  2009 
 6 542371 4616545 1161      25          Albania  2013 
 7 445804   NA      NA      30          Albania  2009 
 8 542152 4616556  475      30          Albania  2013
 9 445805   NA      NA      31          Albania  2009 
10 542392 4616542 1160      31          Albania  2013 

数据是paneldata,但是没有唯一的panel-id。例如,前两个观察结果是来自阿尔巴尼亚的 7 号受访者,但其他国家再次使用了 7 号。id2然而是独一无二的。因此,我的计划是复制id2NA相应受访者条目中。

我写了以下代码:

for (i in 1:nrow(df)) {
if (df$id1[i]== df$id1[i+1] & df$country[i] == df$country[i+1]) {
df$id2[i] <- df$id2[i+1]
}}

这给出了以下错误:

Error in if (df$id1[i] == df1$id1[i + 1] &  :  missing value where TRUE/FALSE needed

然而,它似乎有效。由于我的数据集很大,而且我不是很熟练,所以我不太愿意接受我提出的解决方案,尤其是当它出现错误时。

任何人都可以帮我解释这个错误吗?

此外,是否有更有效的(例如 data.table)并且可能没有错误的方法来处理这个问题?

迪安

你能不能不做点什么:

library(tidyverse)
df %>%
    group_by(country, id1) %>%
    mutate(uniqueId = id2 %>% discard(is.na) %>% unique) %>%
    ungroup()

此外,通过查看您的循环,我判断 NA 始终与唯一 ID 相距 1 行,因此您也可以这样做:

df %>%
    mutate(id2Lag = lag(id2),
           uniqueId = ifelse(is.na(id2), id2Lag, id2) %>%
    select(-id2Lag)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在while循环中创建唯一的ID?

来自分类Dev

需要使用循环创建唯一ID的帮助-jQuery

来自分类Dev

为foreach循环中的按钮分配唯一ID

来自分类Dev

如何从循环中生成唯一的ID

来自分类Dev

如何在Terraform资源循环中使用非唯一键来创建唯一资源

来自分类Dev

如何在Terraform资源循环中使用非唯一键来创建唯一资源

来自分类Dev

在分组数据条件下为唯一ID创建变量

来自分类Dev

在Doctrine中使用唯一ID设置为NULL创建的实体对象

来自分类Dev

在Doctrine中使用唯一ID设置为NULL创建的实体对象

来自分类Dev

在for循环Django模板的每个循环中生成唯一的ID

来自分类Dev

如何使用唯一ID使用循环代码构建子集

来自分类Dev

查找在循环中创建的按钮ID

来自分类Dev

尝试在 firebase 中使用唯一编号 ID,使用 reactjs

来自分类Dev

Thymeleaf 循环中的 Bootstrap 面板 - 相同的 id 和 href

来自分类Dev

Javascript,从每个循环中获取唯一值或按value.id分组

来自分类Dev

在php循环中删除重复项-仅来自唯一ID的累加值

来自分类Dev

为使用insertAdjacentHTML创建的HTML元素分配唯一的ID

来自分类Dev

For循环中的ID Div

来自分类Dev

在 Telerik ASP.NET Core for Ajax 中使用网格为 Id 创建唯一默认值的问题

来自分类Dev

Javascript,CSS-循环唯一ID时的模式ID

来自分类Dev

如何创建条件语句为每个ID动态创建唯一按钮?

来自分类Dev

根据分组的UserId创建唯一的ID

来自分类Dev

为URL创建唯一ID

来自分类Dev

在getDefaultProps中创建唯一的ID

来自分类Dev

重力表创建唯一ID

来自分类Dev

创建2对唯一ID数据行

来自分类Dev

如何基于模式创建唯一ID

来自分类Dev

为URL创建唯一ID

来自分类Dev

基于id创建唯一ID mysql Laravel 5

Related 相关文章

热门标签

归档