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 AsSales
是数字的,您可以设置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), "-")