防止由于 gsub() 引起的格式更改
preventing format change due to gsub()
我有一个名为 dataframe 的 data.frame,我想用 Hs 替换所有的零。我用 gsub 做到了,效果很好,但是当我调用替换的数据帧时有一个 "format change" 。我希望数据框看起来像 data.frame(如果你明白我的意思的话)
dataframe
# A tibble: 3 x 3
c1 c2 c3
* <dbl> <dbl> <dbl>
1 78 89 56
2 89 89 0
3 0 34 4
> gsub("0","H",dataframe)
[1] "c(78, 89, H)" "c(89, 89, 34)" "c(56, H, 4)"
> dataframe <- gsub("0","H",dataframe)
> dataframe
[1] "c(78, 89, H)" "c(89, 89, 34)" "c(56, H, 4)"
如何在不更改数据框外观的情况下(使用 gsub)替换某些内容(如下面的 [1] 所示)。 str_replace()
或apply()
试验也改变了格式;(
感谢您的帮助
如果您有使用gsub
,您可以unlist
并使用[]
保持原始尺寸。
dataframe[] <- gsub("0","H",unlist(dataframe))
dataframe
# c1 c2 c3
#1 78 89 56
#2 89 89 H
#3 H 34 4
不过,这样不是更简单吗?
dataframe[dataframe == 0] <- 'H'
数据
dataframe <- structure(list(c1 = c(78L, 89L, 0L), c2 = c(89L, 89L, 34L),
c3 = c(56L, 0L, 4L)), class = "data.frame", row.names = c("1", "2", "3"))
我有一个名为 dataframe 的 data.frame,我想用 Hs 替换所有的零。我用 gsub 做到了,效果很好,但是当我调用替换的数据帧时有一个 "format change" 。我希望数据框看起来像 data.frame(如果你明白我的意思的话)
dataframe
# A tibble: 3 x 3
c1 c2 c3
* <dbl> <dbl> <dbl>
1 78 89 56
2 89 89 0
3 0 34 4
> gsub("0","H",dataframe)
[1] "c(78, 89, H)" "c(89, 89, 34)" "c(56, H, 4)"
> dataframe <- gsub("0","H",dataframe)
> dataframe
[1] "c(78, 89, H)" "c(89, 89, 34)" "c(56, H, 4)"
如何在不更改数据框外观的情况下(使用 gsub)替换某些内容(如下面的 [1] 所示)。 str_replace()
或apply()
试验也改变了格式;(
感谢您的帮助
如果您有使用gsub
,您可以unlist
并使用[]
保持原始尺寸。
dataframe[] <- gsub("0","H",unlist(dataframe))
dataframe
# c1 c2 c3
#1 78 89 56
#2 89 89 H
#3 H 34 4
不过,这样不是更简单吗?
dataframe[dataframe == 0] <- 'H'
数据
dataframe <- structure(list(c1 = c(78L, 89L, 0L), c2 = c(89L, 89L, 34L),
c3 = c(56L, 0L, 4L)), class = "data.frame", row.names = c("1", "2", "3"))