R 我不能 select 来自包含“01 1 5”等数据的变量的特定值

R I cannot select specific values from a Variable that contains data like "01 1 5"

我有一个像这样的数据框:

Tabla
IDrel ID_Sector
1     01 1 02
2     01 1 06
3     01SC

ID_Sector 是一个因素,但我可以将它转化为字符和 我想过滤数据,只 selecting 一些 ID_Sectors.

我证明了

Tabla_1 <- sqldf("SELECT *
                 FROM Tabla
                 WHERE ID_Sector = '01SC'")

并给我一个包含 0 个观察值的数据框

我也证明了:

Tabla_1 <- subset(Tabla, ID_Sector == "01 1")

并且还给我 0 个观察结果。

我可以使用 SQLDF select 进行类似 "obs one" 的观察,但我不能使用类似“1 0 1”的观察。

也许我误解了你的问题,但这对你有用吗?

library(dplyr)

Tabla <- data.frame(IDrel = 1:3, ID_Sector = as.factor(c("01 01 02", "01 01 06","01SC")))

这给出了:

Tabla

  IDrel ID_Sector
1     1  01 01 02
2     2  01 01 06
3     3      01SC

然后您可以将其更改为字符串,然后再获取相关项目:

Tabla$ID_Sector <- as.character(Tabla$ID_Sector)

Example <- Tabla %>% 
  filter(ID_Sector == "01SC")

这给出:

Example

  IDrel ID_Sector
1     3      01SC

希望本文对您有所帮助。

如果不是,那么听起来您需要对相关字符串进行一些 RegEx 处理。为此,假设你在这个字符串的最后一个单词之后,我会使用来自 dplyr 的 mutate 和来自 stringr 的 word:

Tabla1 <- Tabla %>% 
  mutate(ID_Sector_LastWord = word(ID_Sector,start = -1))

Tabla

  IDrel ID_Sector ID_Sector_LastWord
1     1  01 01 02                 02
2     2  01 01 06                 06
3     3      01SC               01SC

然后您可以过滤 ID_Sector_LastWord