使用功能更改R中的单元格名称

麦可

考虑以下数据帧:

df <- data.frame(rep(1,10),1:10,rep(5,10))

我想用值2替换第二列中值1的所有单元格。我想创建一个执行此操作的函数。我创建以下函数:

test <- function(x,q,y,z) {
  x$q <- gsub(y, z, x$q)
}

但是当我应用代码时:

df$X1.10 <- test(df,X1.10,"1","2")

我得到一个错误。为什么会出现错误?如果我在函数中不包含“ z”参数,则此方法有效。

阿克伦

我们可以使用[[,将列名作为字符串传递,并在函数中返回数据集

test <- function(x,q,y,z) {
    x[[q]] <- gsub(y, z, x[[q]])
    x
  }

test(df, "X1.10", "1", "2")

-输出

#     rep.1..10. X1.10 rep.5..10.
#1           1     2          5
#2           1     2          5
#3           1     3          5
#4           1     4          5
#5           1     5          5
#6           1     6          5
#7           1     7          5
#8           1     8          5
#9           1     9          5
#10          1    20          5

如果我们只需要更改一个固定的匹配项而没有子字符串,则不需要a gsub,它可以只是==创建一个逻辑表达式==并使用它来分配

test <- function(x,q,y,z) {
   i1 <- x[[q]] == y
    x[[q]][i1] <- z
    x
  }

 test(df, "X1.10", "1", "2")
#   rep.1..10. X1.10 rep.5..10.
#1           1     2          5
#2           1     2          5
#3           1     3          5
#4           1     4          5
#5           1     5          5
#6           1     6          5
#7           1     7          5
#8           1     8          5
#9           1     9          5
#10          1    10          5

使用时regex,一个选项是通过添加开头(^)和结尾($paste另外,如果这种情况仅发生一次,那么我们只需要使用sub而不是gsub(全局替换)

test <- function(x,q,y,z) {
     y <- paste0("^", y, "$")
    x[[q]] <- sub(y, z, x[[q]])
    x
  }

test(df, "X1.10", "1", "2")

如果我们想传递未加引号的列名,请使用 deparse/substitute

test <- function(x,q,y,z) {
    q <- deparse(substitute(q))
    x[[q]] <- gsub(y, z, x[[q]])
    x
  }

test(df, X1.10, "1", "2")

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在单元格模板中使用功能

TRIM功能/使用VBA删除单元格中的空格

R:如果单元格上方和下方的值彼此匹配,则在不使用for循环的情况下更改单元格中的值

在UITableView中更改单元格的背景

PowerQuery:在不向每个单元格应用功能的情况下添加预制列

使用VBA功能在Excel中修改单元格

更改数据表单元格后台功能

使用Powershell更改CSV中单个单元格的时间

在重复中更改单元格引用

使用功能更改R中的多个单元格的名称

如何根据UISwitch所在的单元格更改UISwitch的功能

如何在数据框中添加名称并更改R中的特定单元格

基于单元格VBA的Excel自动更改表名称

更改任何单元格名称时,顶部单元格名称也会更改

使用JavaScript更改单元格的值

在EXCEL单元格中更改焦点

在Matlab中更改单元格尺寸

使用公式更改单元格中的字体颜色

每月更改名称的工作簿的单元格引用

在Javascript中更改单元格的值

使用vba中的单元格功能选择范围

如何更改熊猫数据框单元格中名称的确切出现

使用 C# EPPlus 根据 excel 中的单元格文本更改单元格背景颜色

如何使用vba在excel中获取单元格名称

更改 observablecollection 中的单元格内容

使用JS更改表格中单元格的行颜色

在 Pandas 中,如何在使用 .sum() 后更改单元格的名称?

使用 onEdit() 更改单元格背景

如何跳过熊猫中缺失值单元格的应用功能