我是这个网站的新手很抱歉,如果这篇文章很糟糕。
我正在使用大量数据文件,因此我将举例说明here的内容。
在此数据文件中,"铭牌" column有三个值:1,2和3.我试图创建三个新列,每列都有" Abs.530nm"特定行的值,如果它包含相应的板号(例如将板1的吸光度值分成新的列等)
这就是我试图做的事情:
data.row$plate %<>% factor(levels = c("1","2","3"))
data.row %>%
group_by(box, plate) %>%
diff.tr.1.2 <- subset(plate, name.start <-"1", drop=FALSE) %>%
{.} ->data.tech
我收到了这个错误:
Error in subset(plate, name.start <- "1", drop = FALSE) :
object 'plate' not found
有没有办法做我想做的事情?
答案 0 :(得分:0)
对于大型数据集,data.table
包非常快,并且很容易像您描述的那样进行子集化。
我建议您不要创建三个独立的Abs.530nm色谱柱,只需以三种不同的方式过滤数据帧,每个因子级别一个。这比在“ABS.530nm Plate 1”栏中引入NA值更清晰的解决方案
假设您的数据框名为df
require(data.table)
as.data.table(df)
# plate == 1 is your "filter" selecting only rows where the plate is 1
# by defines your grouping, in this case, by box, then by plate
output <- df[plate ==1, by= .(box,plate)]