2017-07-18 48 views
0

我是新来这个网站很抱歉,如果这个职位是蹩脚的。使数据帧中的一个新的变量/列具有一定的质量从现有的数据帧

我正在从一个海量数据文件中工作,所以我将给出一个它看起来像here的小例子。

在这个数据文件中,“plate”列有三个值:1,2和3.我试图创建三个新列,每列具有特定行的“Abs.530nm”值if它包含了相应的车牌号码(例如从板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 

有没有办法做我想做的事?

+1

您正在使用'基地R'语法与'dplyr'一起。我认为你需要'data.row%>%GROUP_BY(箱,板=因子(板,水平= 1:3))%>%的过滤器(name.start == 1)''的部分subset'目前尚不清楚。你的意思是'name.start == 1' – akrun

回答

0

data.table包是大数据集的速度非常快,这是很容易的子集像你描述。

我建议,而不是创建三个独立Abs.530nm列,你根本筛选数据帧三种不同的方式,为每个因子水平。这比在“ABS.530nm板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)] 
相关问题