从下面的data.frame中,我想使用print()函数简单地打印出具有" red"的任何行的行信息(日期和温度)。警告变量。我试过索引,但没有运气! TIA
date temp warnings
<dttm> <dbl> <chr>
1 2017-04-16 10:00:00 26.3 black
2 2017-04-17 10:00:00 25.7 black
3 2017-04-18 10:00:00 25.4 black
4 2017-04-19 10:00:00 25.6 black
5 2017-04-20 10:00:00 25.9 black
6 2017-04-21 10:00:00 26.1 black
7 2017-04-22 10:00:00 27.8 red
8 2017-04-23 10:00:00 26.3 black
9 2017-04-24 10:00:00 26.1 black
10 2017-04-25 10:00:00 26.6 black
谢谢大家!我有一个玩你的建议并设法打印虽然有没有这样做,而不打印列标题?
df[df$warnings == 'red', c('date', 'temp')]
# A tibble: 2 x 2
date temp
<dttm> <dbl>
1 2017-05-27 10:00:00 27.8
2 2017-05-29 10:00:00 27.7
答案 0 :(得分:1)
我用于这样的任务包&#39; dplyr&#39;。
install.packages(dplyr)
library(dplyr)
filter(my_df, warnings =='red')
其中my_df是您的表名。
答案 1 :(得分:0)
ValueTuple<...>
仅选择那些警告为红色的行,按列号
仅选择两列> library("readr")
> red2=read_csv("red.csv")
Parsed with column specification:
cols(
date = col_character(),
temp = col_double(),
warning = col_character()
)
> red2
# A tibble: 10 x 3
date temp warning
<chr> <dbl> <chr>
1 4/16/2017 10:00 26.3 black
2 4/17/2017 10:00 25.7 black
3 4/18/2017 10:00 25.4 black
4 4/19/2017 10:00 25.6 black
5 4/20/2017 10:00 25.9 black
6 4/21/2017 10:00 26.1 black
7 4/22/2017 10:00 27.8 red
8 4/23/2017 10:00 26.3 black
9 4/24/2017 10:00 26.1 black
10 4/25/2017 10:00 26.6 black
> library(lubridate)
Attaching package: ‘lubridate’
The following object is masked from ‘package:base’:
date
> red2$date=mdy_hm(red2$date)
> red2
# A tibble: 10 x 3
date temp warning
<dttm> <dbl> <chr>
1 2017-04-16 10:00:00 26.3 black
2 2017-04-17 10:00:00 25.7 black
3 2017-04-18 10:00:00 25.4 black
4 2017-04-19 10:00:00 25.6 black
5 2017-04-20 10:00:00 25.9 black
6 2017-04-21 10:00:00 26.1 black
7 2017-04-22 10:00:00 27.8 red
8 2017-04-23 10:00:00 26.3 black
9 2017-04-24 10:00:00 26.1 black
10 2017-04-25 10:00:00 26.6 black
现在要解决大数据的问题,我模拟数据更大
> red2[red2$warning=="red",1:2]
# A tibble: 1 x 2
date temp
<dttm> <dbl>
1 2017-04-22 10:00:00 27.8
现在要打印出没有列标题的数据,我们使用带有How do you delete the header in a dataframe?的dimnames = NULL的矩阵
> red3=red2[rep(seq_len(nrow(red2)), each=2000000),]
> str(red3)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 20000000 obs. of 3 variables:
$ date : POSIXct, format: "2017-04-16 10:00:00" "2017-04-16 10:00:00" ...
$ temp : num 26.3 26.3 26.3 26.3 26.3 26.3 26.3 26.3 26.3 26.3 ...
$ warning: chr "black" "black" "black" "black" ...
> system.time(red3[red3$warning=="red",1:2])
user system elapsed
0.17 0.06 0.24