R 来自具有不同级别的相似因子的子集行
我很难根据特定条件从数据帧中对行进行子集划分 我有一个简单的数据框架,有两列包含因子。 我想保留列1的因子等于列2的因子的行 我的问题是,第1列的因子比第2列的因子有更多的级别。 我有: 但它告诉我,这些因素并没有相同的水平。我听说过R 来自具有不同级别的相似因子的子集行,r,R,我很难根据特定条件从数据帧中对行进行子集划分 我有一个简单的数据框架,有两列包含因子。 我想保留列1的因子等于列2的因子的行 我的问题是,第1列的因子比第2列的因子有更多的级别。 我有: 但它告诉我,这些因素并没有相同的水平。我听说过droplevels()或drop与subset函数一起使用 谢谢你的帮助。谢谢 这个怎么样: library(tidyverse) df<-data.frame(f1=factor(sample(1:4,100,TRUE)),
droplevels()
或drop
与subset
函数一起使用
谢谢你的帮助。谢谢 这个怎么样:
library(tidyverse)
df<-data.frame(f1=factor(sample(1:4,100,TRUE)),
f2=factor(sample(1:3,100,TRUE)))
subdf<-filter(df, as.character(f1)==as.character(f2))
subdf
f1 f2
1 1 1
2 3 3
3 3 3
4 3 3
5 3 3
6 2 2
7 3 3
8 2 2
9 1 1
10 2 2
11 1 1
12 1 1
13 2 2
14 2 2
15 3 3
16 3 3
17 1 1
18 1 1
> str(subdf)
'data.frame': 18 obs. of 2 variables:
$ f1: Factor w/ 4 levels "1","2","3","4": 1 3 3 3 3 2 3 2 1 2 ...
$ f2: Factor w/ 3 levels "1","2","3": 1 3 3 3 3 2 3 2 1 2 ...
库(tidyverse)
df使用as.character
将这些列转换为字符向量。
library(tidyverse)
df<-data.frame(f1=factor(sample(1:4,100,TRUE)),
f2=factor(sample(1:3,100,TRUE)))
subdf<-filter(df, as.character(f1)==as.character(f2))
subdf
f1 f2
1 1 1
2 3 3
3 3 3
4 3 3
5 3 3
6 2 2
7 3 3
8 2 2
9 1 1
10 2 2
11 1 1
12 1 1
13 2 2
14 2 2
15 3 3
16 3 3
17 1 1
18 1 1
> str(subdf)
'data.frame': 18 obs. of 2 variables:
$ f1: Factor w/ 4 levels "1","2","3","4": 1 3 3 3 3 2 3 2 1 2 ...
$ f2: Factor w/ 3 levels "1","2","3": 1 3 3 3 3 2 3 2 1 2 ...