R 防止由于gsub()而导致的格式更改

R 防止由于gsub()而导致的格式更改,r,dataframe,gsub,R,Dataframe,Gsub,我有一个名为dataframe的data.frame,我想用Hs替换所有的零。我用gsub做的,效果很好,但是当我调用替换的数据帧时,有一个“格式改变”。我希望dataframe看起来像data.frame(如果您知道我的意思的话) 数据帧 #一个tibble:3x3 c1 c2 c3 * 1 78 89 56 2 89 89 0 3 0 34 4 >gsub(“0”,“H”,数据帧) [1] “c(78,89,H)”“c(89,

我有一个名为dataframe的data.frame,我想用Hs替换所有的零。我用gsub做的,效果很好,但是当我调用替换的数据帧时,有一个“格式改变”。我希望dataframe看起来像data.frame(如果您知道我的意思的话)

数据帧
#一个tibble:3x3
c1 c2 c3
*   
1    78    89    56
2    89    89     0
3     0    34     4
>gsub(“0”,“H”,数据帧)
[1] “c(78,89,H)”“c(89,89,34)”“c(56,H,4)”
>数据帧数据帧
[1] “c(78,89,H)”“c(89,89,34)”“c(56,H,4)”
如何在不更改数据帧外观的情况下(如下面的[1]中所示)替换某些内容(使用gsub)
str_replace()
apply()
试验也会更改格式;(


感谢您的友好帮助

如果您
gsub
,您可以
取消列表
,并使用
[]
维护原始维度

dataframe[] <- gsub("0","H",unlist(dataframe))
dataframe

#  c1 c2 c3
#1 78 89 56
#2 89 89  H
#3  H 34  4

dataframe[]您可以将
rappy()
how=“replace”
一起使用,或者您可以将
lappy()
与以下内容一起使用:
dataframe[]是的,@Andrew您是对的。我还没有抽象出我的问题。谢谢
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"))