выбрать специальные строки в кадре данных - PullRequest
0 голосов
/ 02 мая 2020

У меня есть кадр данных, как показано ниже:

 time        h    theta   Flux
    0.99   -28.8  0.2393 -3.12E-0
  0.9933  -28.81  0.2393 -3.12E-0
  0.9967  -28.83  0.2393 -3.12E-0
       1  -28.84  0.2392 -3.11E-0
  1.0043  -28.86  0.2392 -3.11E-0
    1.01  -28.88  0.2391 -3.09E-0
  1.0173  -28.92  0.2391 -3.03E-0
  1.0204  -28.94  0.2390 -3.01E-0

Я хочу выбрать только те строки, значения столбца времени которых равны 1,2,3, et c.

Ответы [ 3 ]

1 голос
/ 02 мая 2020

Если вы хотите go дальше 3, замените c(1,2,3) на 1:round(max$time) (например)

База R

df[df$time %in% c(1,2,3), ]

dplyr

У вас есть несколько способов сделать это

library(dplyr)
df %>% filter(time %in% c(1,2,3))

data.table

library(data.table)
setDT(df)
df[time %in% c(1,2,3)]
1 голос
/ 02 мая 2020

Возможно, вы пытаетесь выбрать строки, где time является целым числом. Вы можете сделать это с помощью

subset(df, time %% 1 == 0)

#  time     h theta  Flux
#4    1 -28.8 0.239 -3.11

data

df <- structure(list(time = c(0.99, 0.9933, 0.9967, 1, 1.0043, 1.01, 
1.0173, 1.0204), h = c(-28.8, -28.81, -28.83, -28.84, -28.86, 
-28.88, -28.92, -28.94), theta = c(0.2393, 0.2393, 0.2393, 0.2392, 
0.2392, 0.2391, 0.2391, 0.239), Flux = c(-3.12, -3.12, -3.12, 
-3.11, -3.11, -3.09, -3.03, -3.01)), class = "data.frame", row.names = c(NA,-8L))
0 голосов
/ 02 мая 2020

Мы также можем сделать

subset(df, time == 1)
#  time      h  theta  Flux
#4    1 -28.84 0.2392 -3.11

данные

df <- structure(list(time = c(0.99, 0.9933, 0.9967, 1, 1.0043, 1.01, 
1.0173, 1.0204), h = c(-28.8, -28.81, -28.83, -28.84, -28.86, 
-28.88, -28.92, -28.94), theta = c(0.2393, 0.2393, 0.2393, 0.2392, 
0.2392, 0.2391, 0.2391, 0.239), Flux = c(-3.12, -3.12, -3.12, 
-3.11, -3.11, -3.09, -3.03, -3.01)), class = "data.frame",
row.names = c(NA,-8L))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...