[R] remove 0 rows from a data frame
Spencer Graves
spencer.graves at pdf.com
Sun Nov 23 18:50:52 CET 2003
Have you considered the complement, e.g.:
N <- 4
DF <- data.frame(a=1:N, b=1:N)
DF[-1,]
#nft <- rpois(1,2)
nft <- 0
DF[sample(N, N-nft),]
hope this helps. spencer graves
Tord Snall wrote:
>Dear all,
>
>As part of a larger function, I am randomly removing rows from a data
>frame. The number of removed rows is determmined by a Poisson distribution
>with a low mean. Sometimes, the random number is 0, and that's when the
>problem starts:
>
>My data frame:
>
>
>>temp
>>
>>
> occ x y dbh age
>801 0 2977.196 3090.225 6 36.0
>802 0 2951.892 3083.769 8 40.6
>803 0 2919.111 3075.557 8 40.6
>804 0 2914.123 3072.700 9 42.9
>805 0 2925.353 3074.675 8 40.6
>
>How many rows (nft) shall be removed?
>
>
>>nft<- rpois(1, 2)
>>nft
>>
>>
>[1] 2
>
>Ok remove 2 rows:
>
>
>
>>temp2<- temp[-sample(nrow(temp), nft), ]
>>temp2
>>
>>
> occ x y dbh age
>801 0 2977.196 3090.225 6 36.0
>803 0 2919.111 3075.557 8 40.6
>805 0 2925.353 3074.675 8 40.6
>
>No problem.
>
>
>However, sometimes rpois(1, 2) lead to nft=0, and in that case I do not want
>
>
>
>>temp2<- temp[-sample(nrow(temp), 0), ]
>>temp2
>>
>>
>[1] occ x y dbh age
><0 rows> (or 0-length row.names)
>
>
>
>Instead I want
>
>
>>temp2<- temp
>>temp2
>>
>>
> occ x y dbh age
>801 0 2977.196 3090.225 6 36.0
>802 0 2951.892 3083.769 8 40.6
>803 0 2919.111 3075.557 8 40.6
>804 0 2914.123 3072.700 9 42.9
>805 0 2925.353 3074.675 8 40.6
>
>
>Could someone help whith that?
>
>
>Thanks in advance!
>
>
>Sincerely,
>Tord
>
>
>
>-----------------------------------------------------------------------
>Tord Snäll
>Avd. f växtekologi, Evolutionsbiologiskt centrum, Uppsala universitet
>Dept. of Plant Ecology, Evolutionary Biology Centre, Uppsala University
>Villavägen 14
>SE-752 36 Uppsala, Sweden
>Tel: 018-471 28 82 (int +46 18 471 28 82) (work)
>Tel: 018-25 71 33 (int +46 18 25 71 33) (home)
>Fax: 018-55 34 19 (int +46 18 55 34 19) (work)
>E-mail: Tord.Snall at ebc.uu.se
>Check this: http://www.vaxtbio.uu.se/resfold/snall.htm!
>
>______________________________________________
>R-help at stat.math.ethz.ch mailing list
>https://www.stat.math.ethz.ch/mailman/listinfo/r-help
>
>
More information about the R-help
mailing list