Hi,
I'm not following this one I'm afraid. The example data is good, and
it's nice
to see your attempts, but the desired result isn't clear, at least to
me.
I can't think of any reason to do .SD<=7. .SD is a data.table, so it
doesn't
make much sense to compare a list of vectors to the single value 7.
Matthew
On 16.11.2012 14:15, Berto wrote:
Dear all,
I am naive in data.table usage, so I write to you to get help on a
perhaps
trivial question, that it's not clear to me after reading the
"Introduction
to data.table" or the "FAQ" vignettes.
I'd like to subset the rows with contain a value above a certain
threshold
for a certain column, but below another threshold for all the rest
and then
do some operations (e.g. sum):
#Example data
DT = data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9,
w=3:11,
z=LETTERS[1:9])
setkey(DT,z)
DT
x y v w z
1: a 1 1 3 A
2: a 3 2 4 B
3: a 6 3 5 C
4: b 1 4 6 D
5: b 3 5 7 E
6: b 6 6 8 F
7: c 1 7 9 G
8: c 3 8 10 H
9: c 6 9 11 I
#Easy case, 1 variable
DT[y>=3&v<=7,sum(y), by=x]
#Particular solution (low ncols)
DT[y>=3&v<=7&w<=7,sum(y), by=x]
x V1
1: a 9
2: b 3
#Attempt subgroup for general solution
DT[y>=3, .SD<=7,]
x y v w z
[1,] FALSE TRUE TRUE TRUE FALSE
[2,] FALSE TRUE TRUE TRUE FALSE
[3,] FALSE TRUE TRUE TRUE FALSE
[4,] FALSE TRUE TRUE FALSE FALSE
[5,] FALSE TRUE FALSE FALSE FALSE
[6,] FALSE TRUE FALSE FALSE FALSE
##gives a matrix with logical for <=7.
#Second attempt based on FAQ 2.1
DT[y>=3,lapply(.SD<=7,sum),by=x]
x V1 V2 V3 V4 V5 V6 V7 V8
1: a 1 1 1 1 1 1 0 0
2: b 1 1 1 1 1 0 0 0
3: c 1 1 0 0 0 0 0 0
I would appreciate any suggestions, maybe this has been covered
already in
some post of SO that I've missed.
Thanks in advance for your support!!
--
View this message in context:
http://r.789695.n4.nabble.com/Subsetting-columns-in-data-table-tp4649736.html
Sent from the datatable-help mailing list archive at Nabble.com.
_______________________________________________
datatable-help mailing list
[email protected]
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help
_______________________________________________
datatable-help mailing list
[email protected]
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help