의 벡터에 의한 data.table이 데이터 테이블 X
를 가지고 :일부에 우리 가정 문자열
Random <- function(n=1, lenght=6){
randomString <- c(1:n)
for (i in 1:n){randomString[i] <- paste(sample(c(0:9, letters, LETTERS),
lenght, replace=TRUE),collapse="")}
return(randomString)}
X <- data.table(A = rnorm(11000, sd = 0.8),
B = rnorm(11000, mean = 10, sd = 3),
C = sample(LETTERS[1:24], 11000, replace=TRUE),
D = sample(letters[1:24], 11000, replace=TRUE),
E = round(rnorm(11000,mean=25, sd=3)),
F = round(runif(n = 11000,min = 1000,max = 25000)),
G = round(runif(11000,0,200000)),
H = Random(11000))
나는 어떤 문자열하여 부분 집합 싶다.
X[like(H,pattern = "g")]
:
data.table
패키지를 사용하여,
How to select R data.table rows based on substring match (a la SQL like)
우리는 g
을 원하는 경우 : 여기, 우리는 열 여기 H
에 g
, F
및 d
를 취할 것입니다, 우리는 하나 개의 문자열이 작업을 수행 할 수있는 솔루션을 가지고
하지만 내 문제는 g
, F
및 d
에 대해 한번 복제하는 것입니다.
Vec <- c("g","F","d")
Newtable <- X[like(H,pattern = Vec)]
Warning message:
In grep(pattern, levels(vector)) :
argument 'pattern' has length > 1 and only the first element will be used
3 개의 테이블을 만들고 병합하고 중복을 제거하는 방법이 있습니까?
'like '는 벡터 대신에 하나의 요소만을 취할 것이라고 생각합니다. 'Vectorize '를 사용해보십시오 – akrun
@Akrun 당신 말이 맞아요. 내 문제입니다. 나는이 작업을 위해 벡터를 취할 수있는 기능을 모른다. Btw, 도와 줘서 고마워. –