【问题标题】:How do I replace values in one dataset using values from another dataset in R?如何使用 R 中另一个数据集的值替换一个数据集中的值?
【发布时间】:2018-06-16 16:09:33
【问题描述】:

所以我有一个名为活动(相当大的数据集)的 data.frame,它在“步骤”列中包含一些 NA 值。我还有另一个名为 avgstepsperday 的数据集,其中包含每天步数的平均值。我需要用该特定日期的 avgstepsperday 中相应的平均“步数”替换活动中的所有 NA“步数”值。我不知道该怎么做。

【问题讨论】:

  • 您可以创建一个逻辑向量来替换。 i1 <- is.na(activity$steps); activity$steps[i1] <- activity$avgstepsperday[i1]

标签: r


【解决方案1】:

正如 akrun 所提到的,我只是将他的代码放在一个示例中,这样您就可以更容易地想象发生了什么。希望对您有所帮助:

mat1<-matrix(c(1:12, NA, NA, NA),5,3) # Creating a matrix
colnames(mat1)<- c("A", "B", "C") # Adding colnames
dat1<-as.data.frame(mat1) # Passing it as dataframe
is.na(dat1) 
# A     B     C
# [1,] FALSE FALSE FALSE
# [2,] FALSE FALSE FALSE
# [3,] FALSE FALSE  TRUE
# [4,] FALSE FALSE  TRUE
# [5,] FALSE FALSE  TRUE
dat1[is.na(dat1)] <- mean(dat1$C, na.rm = T) # Writing the mean of the same column

# A  B    C
# 1 1  6 11.0
# 2 2  7 12.0
# 3 3  8 11.5
# 4 4  9 11.5
# 5 5 10 11.5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    • 1970-01-01
    • 2020-04-11
    • 2015-10-24
    • 1970-01-01
    • 2016-08-27
    • 2015-12-14
    相关资源
    最近更新 更多