[英]create 2 vectors from 1 in R
我正在使用base R嘗試將以下字符串拆分為2:
some_text | number1 (number2) | number1 (number2) | number1 (number2)
vec1 <- number1 number1 number1
vec2 <- number2 number2 number2
我已經能夠刪除some_text
和|
符號,但需要幫助以基於模式匹配來創建向量。
這是使用strsplit
, sub
和apply
的基本R選項:
x <- "some_text | 1 (2) | 3 (4) | 5 (6)"
y <- strsplit(x, "\\s*\\|\\s*", perl=TRUE)
number1 <- sapply(y, function(x) { sub(" \\(\\d+\\)", "", x) })[2:4]
number2 <- sapply(y, function(x) { sub("\\d+ \\((\\d+)\\)", "\\1", x) })[2:4]
number1
number2
[1] "1" "3" "5"
[1] "2" "4" "6"
我們可以將base R
與strsplit
一起strsplit
m1 <- lapply(strsplit(str1, "[ |()]"), function(x)
matrix(x[x!=""][-1], ncol=2, byrow= TRUE))[[1]]
vec1 <- m1[,1]
vec2 <- m1[,2]
vec1
#[1] "number1" "number1" "number1"
vec2
#[1] "number2" "number2" "number2"
str1 <- 'some_text | number1 (number2) | number1 (number2) | number1 (number2)'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.