我使用下面的代码从向量中的每个字符串的末尾删除部分“(MV)”(特别是所有列的行号1和代码中显示的跳过列1),但是,它删除了每个向量中的M,V和MV,即使它位于字符串的开头。
df[1,(-1)]<-gsub("[(MV)]","",df[1,(-1)])
如何只删除每个字符串末尾的(MV)部分而不影响其余部分呢?
这是一个可重复的例子:
structure(list(X1 = structure(c(NA, 5447), class = "Date"), X2 = c("AVON(MV)",
"28.34"), X3 = c("BA.(MV)", "750.07"), X4 = c("CMRG(MV)", "10.040000000000001"
), X5 = c("COB(MV)", "143.22999999999999")), .Names = c("X1",
"X2", "X3", "X4", "X5"), row.names = c(NA, -2L), class = "data.frame")
答案 0 :(得分:1)
您确定第一行不应该是列标题吗?这并不是数据正常设置的方式,如果您需要使用数字进行计算,则会导致问题。
无论如何,要从每个字符串中删除(MV)
,请尝试fixed
中的gsub
参数,并制作模式"(MV)"
df[1,-1] <- gsub("(MV)", "", df[1,-1], fixed=TRUE)
df
# X1 X2 X3 X4 X5
# 1 <NA> AVON BA. CMRG COB
# 2 1984-11-30 28.34 750.07 10.040000000000001 143.22999999999999
但我认为您需要更仔细地查看这些数据,因为它似乎没有正确设置。