避免在R中重复

时间:2015-02-05 16:43:32

标签: r function data-manipulation

这是我遇到的一个典型问题:

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次调用相同功能的长列表)?

3 个答案:

答案 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"