簡體   English   中英

R函數輸入字符向量

[英]R function to input character vector

我目前有10個向量,如下所示:

string1 <- c("house", "home", "cabin")
string2 <-c("hotel", "hostel", "motel")

以此類推10個字符串

R新手學習功能。 我有以下代碼要在這10個字符串中執行,並轉到一個函數中。 這段代碼接受這些字符串並搜索匹配項並創建一個新變量:

a$string.i <- (1:nrow(a) %in% c(sapply(string1, grep, a$Contents, fixed = TRUE))) +0

當我剛接觸R時,我很想知道如何將其轉換為函數。 我是否需要先定義字符串數,然后在上面的代碼中將'string1'設置為x? 如何將變量=的名稱設置為字符串的名稱?

一些樣本數據:

a <- read.table(text='Contents     other
1     "a house a home"     "111"
2     "cabin in the woods"     "121"', header=TRUE)

如果需要功能,可以嘗試:

fun1 <- function(namePrefix, dat){ #assuming that the datasets have a common prefix i.e. `string`
pat <- paste0("^", namePrefix, "\\d")
nm1 <- ls(pattern=pat, envir=.GlobalEnv)
lst <- mget(nm1, envir=.GlobalEnv)
lst2 <- lapply(lst, function(x) 
      (1:nrow(dat) %in% c(sapply(x, grep, dat$Contents, fixed=TRUE)))+0) #your code
dat[names(lst2)] <- lst2
dat

}

 fun1("string", a)
 #            Contents other string1 string2
 #1     a house a home   111       1       0
 #2 cabin in the woods   121       1       0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM