我有一张 table :
dir E_numdir last2
1 a 1 1
2 PJE INDEPENDENCIA 96 5 96, 5 96, 5
3 PJE INDEPENDENCIA 96 5 96, 5 96, 5
4 B 34 VIVIENDA RECRE 53 00 34, 53, 00 34, 53, 00
5 SARMIENTO CASA DE GO 613 613 13
6 ROCA 958 00 o 958, 00 58, 00
我需要评估每一行的每个元素,如果它们是00,则存储1的列表(如果它们是00或0,如果它们不在每行中) .
我试过了:
d$last1<-lapply(d$E_numdir,
function(w) lapply(strsplit(w,","),
function(z) {
if(str_sub(z, -2, -1)==00){1}
else {0}}))
但是我收到一个错误:
if(str_sub(z,-2,-1)== 0){:参数的长度为零时出错
期望的结果是
dir E_numdir last2 xx
1 a 1 1 0
2 PJE INDEPENDENCIA 96 5 96, 5 96, 5 0,0
3 PJE INDEPENDENCIA 96 5 96, 5 96, 5 0,0
4 B 34 VIVIENDA RECRE 53 00 34, 53, 00 34, 53, 00 0,0,1
5 SARMIENTO CASA DE GO 613 613 13 0
6 ROCA 958 00 o 958, 00 58, 00 1,0
如何用if函数计算每一行的每个元素并将其存储在同一行?
版本:表格结构:
dput(d [1:2,c('dir','E_numdir','last2')])结构(list(dir = c(“a”,“PJE INDEPENDENCIA 96 5”),E_numdir = c(“ 1“,”96,5“),last2 = list(list(”1“),list(c(”96“,”5“)))),. Name = c(”dir“,”E_numdir“, “last2”),row.names = 1:2,class =“data.frame”)
1 回答
尝试
Edit :如果
last2
是一个列表,您可以简化代码