【发布时间】:2018-05-08 01:42:51
【问题描述】:
我正在尝试填充列 size,其值为 0。新值应该是列 name 的最后一段。我尝试了很多方法,但不知何故,当我试图只用 0 填充行时,它不会返回正确的值:
样本数据:
vertices=data.frame(name=c("a","b","c","a.b","a.c","a.a.9","a.b.8"),size= c(1,5,6,2,6,0,0))
ID name size
1 a 1
2 b 5
3 c 6
4 a.b 2
5 a.c 6
6 a.a.9 0
7 a.b.8 0
这条线按预期工作,除了我不想触摸不是 size=0 的行:
vertices$size <- sub(".*\\.", "", vertices$name)
ID name size
1 a a
2 b b
3 c c
4 a.b b
5 a.c c
6 a.a.9 9
7 a.b.8 8
并且在代码中添加条件时,返回错误的结果:
vertices$size[vertices$size==0] <- sub(".*\\.", "", vertices$name)
ID name size
1 a 1
2 b 5
3 c 6
4 a.b 2
5 a.c 6
6 a.a.9 a
7 a.b.8 b
最后两行应该是 9 和 8。我该如何解决这个问题?
【问题讨论】: