How to select rows from data.frame with 2 conditions
r
Solution
Use & not &&. The latter only evaluates the first element of each vector.
Update: to answer the second part, use the reshape package. Something like this will do it:
tablex <- recast(aggdata, Group.1 ~ variable * Group.2, id.var=1:2)
# Now add useful column and row names
colnames(tablex) <- gsub("x_","",colnames(tablex))
rownames(tablex) <- tablex[,1]
# Finally remove the redundant first column
tablex <- tablex[,-1]
Someone with more experience using reshape may have a simpler solution.
Note: Don't use table as a variable name as it conflicts with the table() function.
Problem
I have an aggregated table: ``` > aggdata[1:4,] Group.1 Group.2 x 1 4 0.05 0.9214660 2 6 0.05 0.9315789 3 8 0.05 0.9526316 4 10 0.05 0.9684211 ``` How can I select the x value when I have values for Group.1 and Group.2? I tried: ``` aggdata[aggdata[,"Group.1"]==l && aggdata[,"Group.2"]==lamda,"x"] ``` but that replies all x's. More info: I want to use this like this: ``` table = data.frame(); for(l in unique(aggdata[,"Group.1"])) { for(lambda in unique(aggdata[,"Group.2"])) { table[l,lambda] = aggdata[aggdata[,"Group.1"]==l & aggdata[,"Group.2"]==lambda,"x"] } } ``` Any suggestions that are even easier and giving this result I appreciate!