多语句功能

时间:2019-03-13 17:43:29

标签: r

我有以下代码,用于将名称统一为数据框(tb):

names(tb) = tolower(names(tb))
names(tb) = gsub("\\:", "", names(tb))
names(tb) = gsub("\\.", "_", names(tb))
names(tb) = gsub("\\-", "_", names(tb))
names(tb) = gsub("[[:space:]+]", "_", names(tb))

我需要将这5个字符串应用于多个数据框,因此我想为此创建一个函数。你能帮我吗?谢谢!

2 个答案:

答案 0 :(得分:1)

非常简单,只需将数据框传递给函数,更改名称,然后返回更改的数据框。

name_change <- function(tb) {

names(tb) = tolower(names(tb))
names(tb) = gsub("\\:", "", names(tb))
names(tb) = gsub("\\.", "_", names(tb))
names(tb) = gsub("\\-", "_", names(tb))
names(tb) = gsub("[[:space:]+]", "_", names(tb))
return tb

}

答案 1 :(得分:1)

可以使用

在函数中进行简化
f1 <- function(v1) {
     gsub("[. -]+", "_", gsub(":", "", tolower(v1)))
  }

或使用chartr

f2 <- function(v1) {
    chartr(". -", "___", gsub(":", "", tolower(v1)))
 }

f1(str1)
#[1] "hellos1_s2_s3_s4"

f2(str1)
#[1] "hellos1_s2_s3_s4"

数据

str1 <- "hello:s1.s2-s3 s4"