如何删除R中字符串变量中的最后一个字符?

spa*_*ump 4 r dataframe

我有主题代码,其中代码的最后一位数字是会话号。使用子字符串,我可以创建一个新的会话号变量,但是会话号仍然需要从原始主题代码中删除。(AN11GR1 应变为 AN11GR)

这是一个带有解决方案的可重现示例:

structure(list(subject = c("AN11GR1", "AN11GR2", "BR13ST1", "BR13ST2"
), target = c("m_ve", "k_ck", "m_ve", "k_ck"), corrAns = c("o", 
"i", "o", "i"), RT = c(2.9254148, 1.7154148, 2.6454148, 1.9254148
)), class = "data.frame", row.names = c(NA, -4L)) -> myData

myData$session <- substring(myData$subject, nchar(myData$subject))
myData$subject <- substring(myData$subject, 1, nchar(myData$subject)-1)

myData <- subset(myData, select = c(subject, session, RT))
myData
Run Code Online (Sandbox Code Playgroud)

关于如何以简洁方便的方式删除最后一个字符的想法?(有关最简洁的解决方案,请参阅 akrun 的评论。)

Tar*_*Jae 5

将此行添加到您的代码中。使用substringandnchar您可以定义删除最后一个字符:

myData$subject <- substring(myData$subject, 1, nchar(myData$subject)-1)
myData
Run Code Online (Sandbox Code Playgroud)
  subject session       RT
1  AN11GR       1 2.925415
2  AN11GR       2 1.715415
3  BR13ST       1 2.645415
4  BR13ST       2 1.925415
Run Code Online (Sandbox Code Playgroud)