【发布时间】:2020-07-08 10:08:03
【问题描述】:
我正在尝试获取数据框中一系列符号的最后一个字符或编号,以便在之后过滤一些类别。但我没有得到预期的结果。
names = as.character(c("ABC Co","DEF Co","XYZ Co"))
code = as.character(c("ABCN1","DEFMO2","XYZIOIP4")) #variable length
my_df = as.data.frame(cbind(names,code))
第一种方法:
my_df[,3] = substr(my_df[,2],length(my_df[,2]),length(my_df[,2]))
我希望收到的是:c("1","2","4")
我真正收到的是:c("C","F","Z")
然后,我意识到length(my_df[,2]) 是我的数据框的行数,而不是每个单元格的长度。所以,我决定创建这个循环:
for (i in length(nrow(my_df))){
my_df[i,3] = substr(my_df[i,2],length(my_df[i,2]),length(my_df[i,2]))
}
我希望收到的是:c("1","2","4")
我真正收到的是:c("A","F","Z")
然后我尝试了:
for (i in length(nrow(my_df))){
my_df[i,3] = substr(my_df[i,2],-1,-1)
}
我期望收到的是:c("1","2","4")
我真正收到的是:c("","F","Z")
没有运气,对我错过了什么有什么想法吗?非常感谢!
【问题讨论】:
标签: r substr string-length