R 将值转换为摘要中的特殊字符

R 将值转换为摘要中的特殊字符,r,R,我创建了一个汇总表,如下所示 Name Sales AS 71.5% DY 88.4% VH 44.6% MY 86.9% HU 42.3% TT 67.2% BG 0.0% SA 85.3% 现在我想将0.0替换为“-” 我试过了 tab[,2] <- paste0(tab[,2],"%") tab[,2] <- replace(tab[,2],tab[,2]<0,&q

我创建了一个汇总表,如下所示

   Name Sales
    AS  71.5%
    DY  88.4%
    VH  44.6%
    MY  86.9%
    HU  42.3%
    TT  67.2%
    BG  0.0%
    SA  85.3%
现在我想将0.0替换为“-”

我试过了

tab[,2] <- paste0(tab[,2],"%")
tab[,2] <- replace(tab[,2],tab[,2]<0,"-")
因此,整个功能是这样的,每个人有三列操作系统销售额

您可以尝试以下方法:

#Data

df <- structure(list(Name = structure(c(1L, 3L, 8L, 5L, 4L, 7L, 2L, 
6L), .Label = c("AS", "BG", "DY", "HU", "MY", "SA", "TT", "VH"
), class = "factor"), Sales = c(71.5, 88.4, 44.6, 86.9, 42.3, 
67.2, 0, 85.3)), class = "data.frame", row.names = c(NA, -8L))
#Code
index <- which(df$Sales==0)
df$Sales[index] <- '-'

  Name Sales
1   AS  71.5
2   DY  88.4
3   VH  44.6
4   MY  86.9
5   HU  42.3
6   TT  67.2
7   BG     -
8   SA  85.3
试试这个:

tab$Sales <- replace(tab$Sales, which(tab$Sales == 0), "-")

tab$Sales As
Sales
是数字的,您可以设置
0
以进行替换。这是可行的,但我有小数点的值范围,因此假设值为10.0,则其转换为“1-”,因为我还必须显示小数点point@rjunkie2更新!抱歉搞混了!让我知道它是否有效!根据您的数据,我们是否有类似gsub()或sub()的解决方案?您可以尝试:
索引请使用
dput()显示您的数据。
。我认为我们使用完全相同的数据是很重要的。抱歉:(在这种情况下,你能编辑你的帖子以包含一个可复制的例子吗?如果不能,如果你已经重新格式化了销售,也许可以尝试将
which(tab$Sales==0)
更改为
which(tab$Sales==0.0%)
df2 <- structure(list(Name = c("AS", "DY", "VH", "MY", "HU", "TT", "BG", 
"SA"), Sales = c("71.5%", "88.4%", "44.6%", "86.9%", "42.3%", 
"67.2%", "0.0%", "85.3%")), class = "data.frame", row.names = c(NA, 
-8L))
df2$Sales2 <- gsub("0.0%","-",df2$Sales,fixed=T)



Name Sales Sales2
1   AS 71.5%  71.5%
2   DY 88.4%  88.4%
3   VH 44.6%  44.6%
4   MY 86.9%  86.9%
5   HU 42.3%  42.3%
6   TT 67.2%  67.2%
7   BG  0.0%      -
8   SA 85.3%  85.3%
df$tab <- paste0(df$Sales,'%')
df$tab <- ifelse(nchar(df$tab)==2,gsub("0%","-",df$tab,fixed=T),df$tab)

  Name Sales   tab
1   AS  71.5 71.5%
2   DY  88.4 88.4%
3   VH  44.6 44.6%
4   MY  86.9 86.9%
5   HU  42.3 42.3%
6   TT  67.2 67.2%
7   BG   0.0     -
8   SA  85.3 85.3%
tab$Sales <- replace(tab$Sales, which(tab$Sales == 0), "-")