r - 如何拆分脚本 | 到 r 中的下一行
问题描述
我想根据列中某些字符串的列表替换列值。但是列表太长了,我想切换到下一行。但是,R 不会接受它。
####The test data file is data1
a <- runif (10)
b <- c("a;c", "a", "b", "c","a;b;c","a;d", "a;c", "a;b;c;d;e","e", "f")
c <- c(rep ("A-B", 4), rep("A_C", 6))
data1 <- data.frame (a, b, c)
data1
#### a b c
####1 0.63360850 a;c A-B
####2 0.04681311 a A-B
####3 0.04743504 b A-B
####4 0.95342317 c A-B
####5 0.09054516 a;b;c A_C
####6 0.93139978 a;d A_C
####7 0.20558417 a;c A_C
####8 0.64131076 a;b;c;d;e A_C
####9 0.88136996 e A_C
####10 0.22000617 f A_C
list=c("a|b|c")
data1$b <- gsub(list, "[other]", data1$b)
####The ultimate goal example for the 1st line
####1 0.63360850 [other];[other] A-B
####But the list is actually too long, I have to move them into the next
####line:
####E.g.:
list=c("a|
b|
c")
如何解决我的列表的换行问题?我有不止 3 根琴弦,而且每根琴弦都非常长。有人可以建议吗?非常感谢您!
解决方案
您可以使用paste
my.list = paste(
"a",
"b",
"c",
sep ='|')
data1$b <- gsub(my.list, "[other]", data1$b)
或者另一种选择是在将列表定义为单个字符串后删除换行符:
my.list =
"
a|
b|
c
"
my.list = gsub("\\n", "", my.list)
推荐阅读
- java - 如何设计一个高效的排序对手?
- javascript - 检查对页面的访问
- ksqldb - Ksql:在 KTable 上应用过滤器生成具有空值的记录
- javascript - 动态字段的Angular 7表单验证
- c# - 广告未在 Windows 10 uwp 中显示
- javascript - 将具有分组功能的 iggrid 导出到 Excel
- r - 如何将第一个参数传递给 lapply 以便它表示数据帧的“行”列表
- html - CSS:公交车站样式轴的两个问题
- python - 如何将具有多个不同长度元素的列表转换为表格格式
- javascript - 如何在js中关闭用户浏览器选项卡/窗口