使用 R 基于对象和变量的数据过滤器
Data Filter based on object and variable using R
我正在尝试从变量中过滤对象。
这是我的数据;
head(DfUse)
InstanceType ProductDescription SpotPrice ymd_hms(Timestamp)
<chr> <chr> <dbl> <chr>
1 a1.2xlarge Linux/UNIX 0.0671 06:17:23
2 a1.2xlarge Red Hat Enterprise Linux 0.1971 06:17:23
3 a1.2xlarge SUSE Linux 0.2171 06:17:23
4 a1.4xlarge Linux/UNIX 0.1343 12:15:54
5 a1.4xlarge Red Hat Enterprise Linux 0.2643 12:15:54
6 a1.4xlarge SUSE Linux 0.2843 12:15:54
数据维度为
dim(DfUse)
[1] 10078 4
数据集结构
str(DfUse)
'data.frame': 10078 obs. of 4 variables:
$ InstanceType : chr " a1.2xlarge" " a1.2xlarge" " a1.2xlarge" " a1.4xlarge" ...
$ ProductDescription: chr " Linux/UNIX" " Red Hat Enterprise Linux" " SUSE Linux" " Linux/UNIX" ...
$ SpotPrice : num 0.0671 0.1971 0.2171 0.1343 0.2643 ...
$ ymd_hms(Timestamp): chr "06:17:23" "06:17:23" "06:17:23" "12:15:54" ...
当我尝试过滤时
filter(DfUse, InstanceType == 'a1.2xlarge')
0 rows
请帮助过滤数据集。我想按其他变量分组堆叠所有过滤值。
从数据集结构来看,您的数据中似乎有一些空白。您可以使用 trimws
将其删除。
dplyr::filter(DfUse, trimws(InstanceType) == 'a1.2xlarge')
带基数 R subset
-
subset(DfUse, trimws(InstanceType) == 'a1.2xlarge')
最好通过删除开头或结尾的空格来转换所有 character
列(以避免任何进一步的问题),然后执行 filter
library(dplyr)
DfUse %>%
mutate(across(where(is.character), trimws)) %>%
filter(InstanceType == "a1.2xlarge")
我正在尝试从变量中过滤对象。 这是我的数据;
head(DfUse)
InstanceType ProductDescription SpotPrice ymd_hms(Timestamp)
<chr> <chr> <dbl> <chr>
1 a1.2xlarge Linux/UNIX 0.0671 06:17:23
2 a1.2xlarge Red Hat Enterprise Linux 0.1971 06:17:23
3 a1.2xlarge SUSE Linux 0.2171 06:17:23
4 a1.4xlarge Linux/UNIX 0.1343 12:15:54
5 a1.4xlarge Red Hat Enterprise Linux 0.2643 12:15:54
6 a1.4xlarge SUSE Linux 0.2843 12:15:54
数据维度为
dim(DfUse)
[1] 10078 4
数据集结构
str(DfUse)
'data.frame': 10078 obs. of 4 variables:
$ InstanceType : chr " a1.2xlarge" " a1.2xlarge" " a1.2xlarge" " a1.4xlarge" ...
$ ProductDescription: chr " Linux/UNIX" " Red Hat Enterprise Linux" " SUSE Linux" " Linux/UNIX" ...
$ SpotPrice : num 0.0671 0.1971 0.2171 0.1343 0.2643 ...
$ ymd_hms(Timestamp): chr "06:17:23" "06:17:23" "06:17:23" "12:15:54" ...
当我尝试过滤时
filter(DfUse, InstanceType == 'a1.2xlarge')
0 rows
请帮助过滤数据集。我想按其他变量分组堆叠所有过滤值。
从数据集结构来看,您的数据中似乎有一些空白。您可以使用 trimws
将其删除。
dplyr::filter(DfUse, trimws(InstanceType) == 'a1.2xlarge')
带基数 R subset
-
subset(DfUse, trimws(InstanceType) == 'a1.2xlarge')
最好通过删除开头或结尾的空格来转换所有 character
列(以避免任何进一步的问题),然后执行 filter
library(dplyr)
DfUse %>%
mutate(across(where(is.character), trimws)) %>%
filter(InstanceType == "a1.2xlarge")