[R] Subset()

Jim Lemon drjimlemon at gmail.com
Sat Jan 21 23:32:49 CET 2017


Hi Elise,
If I create a CSV file like your example and read it into a data frame:

eldf<-read.csv("el.csv")

Then convert the first field to POSIXt dates:

eldf$DateTime<-strptime(eldf$DateTime,"%Y-%m-%d %H:%M:%S")
class(eldf$DateTime)
[1] "POSIXlt" "POSIXt"

I can subset the file like this:

time_after<-strptime("2017-01-09 18:00:00","%Y-%m-%d %H:%M:%S")
> time_after
[1] "2017-01-09 18:00:00 AEDT"
> eldf[eldf$DateTime >= time_after,]
            DateTime RECORD PTemp PPFD_Avg Air_Temp_Avg RH_avg Soil_Temp
7  2017-01-09 18:00:00      6 21.26   -48.83       -38.49 -0.415        79
8  2017-01-09 18:15:00      7 21.21   -52.23       -39.00 -0.642        79
9  2017-01-09 18:30:00      8 21.12   -54.68       -39.41 -0.805        79
10 2017-01-09 18:45:00      9 21.04   -56.44       .39.74 -0.939        79
11 2017-01-09 19:00:00     10 20.99   -57.71       -40.01 -1.046        79
12 2017-01-09 19:15:00     11 20.91   -58.66       -40.25 -1.137        79
13 2017-01-09 19:30:00     12 21.83   -59.39       -40.46 -1.208        79

Perhaps this will do what you want.

No need to apologize for your English, I could not make myself
understood in French.

Jim

On Sun, Jan 22, 2017 at 4:15 AM, Elise LIKILIKI
<elise.likiliki at gmail.com> wrote:
> Hi Jim,
>
> Yes exactly it returns "POSIXct" "POSIXt"
> Find attached a screenshot showing my data in "data" object.
> I don't need the data before 2017-01-10 11:00:00 nor columns : Records and
> Ptemp.
> I've tried with subset() and with [ ] but I still have some rows containing
> data before 2017-01-10 11:00:00.
>
> I'm french so I am really sorry about my english
>
> 2017-01-21 11:41 GMT+01:00 Jim Lemon <drjimlemon at gmail.com>:
>>
>> Hi Elise,.
>> I would ask:
>>
>> class(data$DateTime)
>>
>> and see if it returns:
>>
>> "POSIXct" "POSIXt"
>>
>> Jim
>>
>>
>> On Sat, Jan 21, 2017 at 3:02 AM, Elise LIKILIKI
>> <elise.likiliki at gmail.com> wrote:
>> > Hello,
>> >
>> > I have a dataset containing Date Time, Air Temperature, PPFD, Sol
>> > Temperature...
>> > The first data are false so I would like to extract the other ones.
>> > I've tried :
>> >>data1<-subset(data,DateTime>=as.POSIXct("2017-01-10
>> > 11:00:00",format="%Y-%m-%d
>> >
>> > %H:%M:%S"),select=c(DateTime,PPFD_Avg,Air_Temp_Avg,RH_Avg,Soil_Temp_Avg))
>> > But I still have 4 rows with data from 2017-01-10 10:00:00 to 2017-01-10
>> > 10:45:00 and I don't understand why.
>> >
>> > Does anyone could help me please.
>> >
>> > Thanks,
>> >
>> > Elise LIKILIKI
>> >
>> >         [[alternative HTML version deleted]]
>> >
>> > ______________________________________________
>> > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> > https://stat.ethz.ch/mailman/listinfo/r-help
>> > PLEASE do read the posting guide
>> > http://www.R-project.org/posting-guide.html
>> > and provide commented, minimal, self-contained, reproducible code.
>
>



More information about the R-help mailing list