【问题标题】:Create dataframe with missing data创建缺少数据的数据框
【发布时间】:2018-09-18 21:00:48
【问题描述】:

我对 R非常是新手,所以请原谅我可能是菜鸟的问题。

我每小时收集 23 个人的激素浓度数据 - 我在每小时收集之间进行插值,以 0.1 的间隔获得 2.0 - 15pg/ml 的浓度:这等于每个人 131 行数据。

但是,一些个体的浓度不超过 6.0 pg/ml(例如),这意味着我的数据帧中个体之间的行数不相等。我需要所有个人都有 131 行,以便下一步合并所有数据。

我尝试创建一个包含 131 行和两个列的 NA 数据框,然后将个人的插值数据添加到 NA 数据框中 - 最终结果是 131 行数据来自缺失数据为 NA - 但是情况不太好。

interp_saliva_002_x <- as.tibble(matrix(, nrow = 131, ncol = 1))
interp_sequence <- as.numeric(seq(2,15,.1))
interp_saliva_002_x[1] <- interp_sequence
colnames(interp_saliva_002_x)[1] <- "saliva_conc"

test <- left_join(interp_saliva_002_x, interp_saliva_002, by "saliva_conc")

你能帮我理解我哪里出错了,或者有更合乎逻辑的方法吗?

谢谢!

【问题讨论】:

  • 寻求帮助时,您应该包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出。也许从tidyr 签出complete() 函数
  • 一个可重现的例子会很有帮助。我们需要知道您拥有什么以及目前的形式是什么?你是从剪贴板复制吗?从 CSV 文件?其他?在 R 中,您通常不会创建一个充满间隔的数据框然后填充它(就像您在 Excel 中所做的那样)。但我们必须看到一个最小的可重现示例才能为您指明方向。

标签: r dataframe na missing-data


【解决方案1】:

假设您有 3 个不同长度的向量:

A<-seq(1,5); B<-seq(2,8); C<-seq(3,5)

将向量的长度更改为您想要的长度(在您的情况下为 131,为简单起见,我选择了 7):

length(A)<-7; length(B)<-7; length(C)<-7 #this replaces all the missing values to NA 

接下来您可以将向量绑定到矩阵:

 m <-cbind(A,B,C)
#      A B  C
#[1,]  1 2  3
#[2,]  2 3  4
#[3,]  3 4  5
#[4,]  4 5 NA
#[5,]  5 6 NA
#[6,] NA 7 NA
#[7,] NA 8 NA

您还可以将矩阵更改为数据框:

df<-as.data.frame(m)    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多