R我无法从包含" 01 1 5"等数据的变量中选择特定值。

时间:2016-10-17 15:27:55

标签: r dataframe subset sqldf

我有一个类似的数据框:

func modifiedImageFromUrl(url: NSURL?) {
    self.sd_setImageWithURL(url) { (image, error, cacheType, url) in
        if cacheType == SDImageCacheType.None && image != nil {
            dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0)) {
                let modifiedImage = // modify image as you want

                dispatch_async(dispatch_get_main_queue()) {
                    SDWebImageManager.sharedManager().saveImageToCache(modifiedImage, forURL: url)

                    self.image = modifiedImage
                }
            }
        }
    }
}

Tabla IDrel ID_Sector 1 01 1 02 2 01 1 06 3 01SC 是一个因素,但我可以将其转换为角色和 我想通过仅选择一些ID_Sector来过滤数据。

我证明了

ID_Sector

给我一​​个0观察的数据框

我也证明了:

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

也给了我0个观察结果。

我可以在SQLDF中选择一个类似&#34; blind one&#34;的观察,但我不能用&#34; 1 0 1&#34;。

1 个答案:

答案 0 :(得分:0)

也许我误解了你的问题,但是这样做是为了吗?

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进行过滤。