这是我遇到的一个典型问题:
replace_letters <- function(string){
gsub("x", "a", string)
}
string_x_new <- replace_letters("string_x")
string_y_new <- replace_letters("strxng_y")
string_z_new <- replace_letters("xstring_z")
...
这意味着我正在编写一个函数(示例中的函数是任意的)然后我想将它应用于任意一组对象。什么是一种更简洁的方法,而不必多次重复该功能(有时候我会为不同的对象提供10-15次调用相同功能的长列表)?
答案 0 :(得分:3)
使用c(“string_x”,“strxng_y”,“xstring_z”)将字符串放在向量中,然后使用apply函数 例如:
strings<-c("string_x", "strxng_y", "xstring_z")
replace_letters <- function(string){
gsub("x", "a", string)
}
strings <- sapply(strings, replace_letters)
答案 1 :(得分:1)
您可以创建要将该函数应用到的对象的向量。我们举个例子:
new.strings <- sapply(c("string_x", "string_y", "string_z"), replace_letters)
答案 2 :(得分:1)
您可以使用R的矢量化:
strings<-c("string_x", "strxng_y", "xstring_z")
replace_letters(strings)
## [1] "string_a" "strang_y" "astring_z"