用“ ID”将其他数据框中的值替换为数据框变量中的NA值

虚荣地

我想知道是否有NA比我在下面做的更简洁的方法来替换数据帧中变量的值。下面的代码似乎比我认为的R语言更长。例如,我不知道某些软件包/工具可能会更简洁地完成此任务。

是否有一种方法可以替换或仅合并值NA合并使用两个dataframes之后all.x = T我有一些NA价值观,我想,以取代那些使用一个共同的变量替换链接另一个数据帧的信息。

# get dataframes
breaks <- structure(list(Break = 1:11, Value = c(2L, 13L, 7L, 9L, 40L, 
21L, 10L, 37L, 7L, 26L, 42L)), .Names = c("Break", "Value"), class = "data.frame", row.names = c(NA, 
-11L))

fsites <- structure(list(Site = c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 
3L, 3L, 3L, 3L), Plot = c(0L, 1L, 2L, 3L, 4L, 0L, 1L, 2L, 0L, 
1L, 2L, 3L, 4L, 5L), Break = c(1L, 5L, 7L, 8L, 11L, 1L, 6L, 11L, 
1L, 4L, 6L, 8L, 9L, 11L)), .Names = c("Site", "Plot", "Break"
), class = "data.frame", row.names = c(NA, -14L))

bps <- structure(list(Site = c(1L, 1L, 1L, 1L, 2L, 2L, 3L, 3L, 3L, 3L, 
3L), Plot = c(0L, 1L, 2L, 3L, 1L, 2L, 0L, 1L, 2L, 3L, 4L), Value = c(0.393309653, 
0.12465733, 0.27380161, 0.027288989, 0.439712533, 0.289724079, 
0.036429062, 0.577460008, 0.820375917, 0.323217357, 0.28637503
)), .Names = c("Site", "Plot", "Value"), class = "data.frame", row.names = c(NA, 
-11L))

# merge fsites and bps
df1 <- merge(fsites, bps, by=c("Site", "Plot"), all.x=T)

# merge df1 and breaks to get values to eventually replace the NA values in 
# df1$Values.x, here "Break" is the ID by which to replace the NA values
df2 <- merge(df1, breaks, by=c("Break"))

# Create a new column 'Value' that uses Value.x, unless NA, then Value.y
df3 <- df2
df3$Value <- df2$Value.x
df2.na <- is.na(df2$Value.x)
df3$Value[df2.na] <- df2$Value.y[df2.na]

# get rid of unnecessary columns
cols <- c(1:3,6)
df4 <- df3[,cols]
亚历克西斯·拉兹

在那里只(台breaksfsitesbps和)df1周围:

df1$Value <- ifelse(is.na(df1$Value), 
                            breaks$Value[match(df1$Break, breaks$Break)], df1$Value)

#> df1
#   Site Plot Break       Value
#1     1    0     1  0.39330965
#2     1    1     5  0.12465733
#3     1    2     7  0.27380161
#4     1    3     8  0.02728899
#5     1    4    11 42.00000000
#6     2    0     1  2.00000000
#7     2    1     6  0.43971253
#8     2    2    11  0.28972408
#9     3    0     1  0.03642906
#10    3    1     4  0.57746001
#11    3    2     6  0.82037592
#12    3    3     8  0.32321736
#13    3    4     9  0.28637503
#14    3    5    11 42.00000000

#just to test with your `df4`
> sort(df1$Value) == sort(df4$Value)
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用“ ID”将其他数据框中的值替换为数据框变量中的NA值

来自分类Dev

用NA替换多个数据框列中的空白值:我应该使用ifelse还是其他?

来自分类Dev

用其他观察值替换变量中的NA

来自分类Dev

用其他系列中的最小值替换数据框中的np.nan

来自分类Dev

用组中其他列的第一个或最后一个值替换数据框中的NA值

来自分类Dev

用数据框中的值替换向量的元素

来自分类Dev

用向量替换数据框列的值

来自分类Dev

用其他值替换数据框中的值

来自分类Dev

用另一列中的值替换数据框中的占位符值

来自分类Dev

熊猫用其他数据框替换数据框中的行

来自分类Dev

用其他数据框替换值作为参考

来自分类Dev

用R中的列值替换整个数据框中的值

来自分类Dev

用较小数据框中的列值替换数据框中的列的后n行

来自分类Dev

用其他数据框中的值替换数据框中的NA

来自分类Dev

用R数据框中的NA随机替换每组值的百分比

来自分类Dev

Python:匹配其他列中的值后,用另一个数据框中的值替换特定列中的NaN

来自分类Dev

用numpy替换数据框的多列中的值

来自分类Dev

用`apply`方法替换数据框中的多个值

来自分类Dev

用数据框中的NA替换特定值

来自分类Dev

用熊猫替换数据框中的NaN值

来自分类Dev

用其他数据框的值填充数据框的空单元格

来自分类Dev

根据日期和其他数据框中的匹配值,用Nan替换值

来自分类Dev

用其他列中的计算替换熊猫数据框中的NaN值

来自分类Dev

用组中其他列的第一个或最后一个值替换数据框中的NA值

来自分类Dev

用新的数据框替换数据框中的特定值

来自分类Dev

用行名替换r中数据框中的值

来自分类Dev

根据数据框中某些其他属性的值,用“ Y”或“ N”替换变量的所有Na值

来自分类Dev

用Pandas替换数据框中的值

来自分类Dev

如何在pyspark数据框中按ID用另一行的值替换空值?

Related 相关文章

  1. 1

    用“ ID”将其他数据框中的值替换为数据框变量中的NA值

  2. 2

    用NA替换多个数据框列中的空白值:我应该使用ifelse还是其他?

  3. 3

    用其他观察值替换变量中的NA

  4. 4

    用其他系列中的最小值替换数据框中的np.nan

  5. 5

    用组中其他列的第一个或最后一个值替换数据框中的NA值

  6. 6

    用数据框中的值替换向量的元素

  7. 7

    用向量替换数据框列的值

  8. 8

    用其他值替换数据框中的值

  9. 9

    用另一列中的值替换数据框中的占位符值

  10. 10

    熊猫用其他数据框替换数据框中的行

  11. 11

    用其他数据框替换值作为参考

  12. 12

    用R中的列值替换整个数据框中的值

  13. 13

    用较小数据框中的列值替换数据框中的列的后n行

  14. 14

    用其他数据框中的值替换数据框中的NA

  15. 15

    用R数据框中的NA随机替换每组值的百分比

  16. 16

    Python:匹配其他列中的值后,用另一个数据框中的值替换特定列中的NaN

  17. 17

    用numpy替换数据框的多列中的值

  18. 18

    用`apply`方法替换数据框中的多个值

  19. 19

    用数据框中的NA替换特定值

  20. 20

    用熊猫替换数据框中的NaN值

  21. 21

    用其他数据框的值填充数据框的空单元格

  22. 22

    根据日期和其他数据框中的匹配值,用Nan替换值

  23. 23

    用其他列中的计算替换熊猫数据框中的NaN值

  24. 24

    用组中其他列的第一个或最后一个值替换数据框中的NA值

  25. 25

    用新的数据框替换数据框中的特定值

  26. 26

    用行名替换r中数据框中的值

  27. 27

    根据数据框中某些其他属性的值,用“ Y”或“ N”替换变量的所有Na值

  28. 28

    用Pandas替换数据框中的值

  29. 29

    如何在pyspark数据框中按ID用另一行的值替换空值?

热门标签

归档