我有一个带有字符列1(和几个数字列)的数据框。 第1列包含如下ID:BIS12; HK / FF; 310; BIS101; 412 ......
现在我想在数据框中添加一个因子列,以便在两组中对这些ID进行排序。我想要一些像#34;如果一个数字" - > 0; "如果它包含' BIS'" - > 1.
任何人都可以帮我吗?我发现了一些用于排序数字或寻找已定义字符串的解决方案,但没有一般的......
感谢您的每一个提示!
答案 0 :(得分:1)
不是100%确定这是你正在寻找的,但这就是我用data.frame解决这个问题的方法。首先,我将为常见情况定义我想要的默认值,然后我会编写一些规则来更新例外情况,例如:国际清算银行,或数字。
# sample data
dt <- data.frame(V1 =c("BIS12", "HK/FF", "310"), stringsAsFactors = FALSE)
# default is not a number, and not BIS e.g. 2
dt$classifier <- 2
# numbers: 0, bis: 1
dt$classifier[!is.na(as.integer(dt$V1))] <- 0
# BIS
dt$classifier[grepl("BIS", dt$V1)] <- 1
# result
dt
这有用吗?
最佳, 强尼