【发布时间】:2020-12-19 19:37:12
【问题描述】:
我有一个 df,我想对 screen_name 列中所有列的第一个字母进行子字符串化,但名称为“frank”的单元格除外。 R 忽略了我的所有尝试(子字符串在所有单元格上执行)。为什么?
df <- data.frame("screen_name" = c("august", "berit", "christopher", "david", "erica", "frank"), "rt_name" = c("berit", "august", "david", "erica", "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, 1, 2)}
我正在寻找包含 %!like% 或类似名称的解决方案,因为 df 中的名称可能会有所不同,而且我并不总是完全匹配。
我的预期输出是
df_exp <- data.frame("screen_name" = c("au", "be", "ch", "da", "er", "frank"), "rt_name" = c("berit", "august", "david", "erica", "frank", "christopher"))
提前致谢!
【问题讨论】:
-
frank会发生什么?它是否保持原样,或者您期望frank的输出是什么? -
我已经添加了预期的输出(但可以在下面看到你想通了:))
标签: r dataframe if-statement substring