微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果否-在R中带有子字符串的句子

如何解决如果否-在R中带有子字符串的句子

我有一个df,我想为screen_name列中所有列的首字母加上子串,但名称为'frank'的单元格除外。我的所有尝试都被R忽略(子字符串在所有单元格上执行)。为什么?


df <- data.frame("screen_name" = c("august","berit","christopher","david","erica","frank"),"rt_name" = c("berit","august","frank","christopher"))

#IF-sentence with '%!like%' 
'%!like%' <- function(x,y)!('%like%'(x,y))
df$screen_name<- if(df$screen_name %!like% ('frank')) {substr(df$screen_name,1,2)}

#IF-sentence with !=
df$screen_name<- if(df$screen_name != 'frank') {substr(df$screen_name,2)}

我正在寻找包含%!like%或相似名称解决方案,因为df中的名称可能会有所不同,而且我并不总是完全匹配。

我的预期输出

df_exp <- data.frame("screen_name" = c("au","be","ch","da","er","christopher"))

谢谢!

解决方法

您可以尝试结合使用ifelsegrepl来检查输入屏幕名称是否恰好是frank

df$screen_name <- ifelse(!grepl("^frank$",df$screen_name),substr(df$screen_name,1,2),df$screen_name)
df

  screen_name     rt_name
1          au       berit
2          be      august
3          ch       david
4          da       erica
5          er       frank
6       frank christopher

数据:

df <- data.frame(screen_name = c("august","berit","christopher","david","erica","frank"),rt_name = c("berit","august","frank","christopher"),stringsAsFactors=FALSE)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。