尝试从列中删除 ★ 符号,但无济于事。
dput(star$fifa21_raw_data.W.F[1:20])
c("4★", "4★", "3★", "5★", "5★", "4★", "4★", “3★”、“3★”、“4★”、“3★”、“4★”、“3★”、“3★”、 “4★”、“4★”、“3★”、“4★”、“3★”、“4★”)
我到处看了,感觉 gsub 在这里可以解决问题,所以我尝试了:
gsub('[★]([0-9]+)','\\1\\2', star$fifa21_raw_data.W.F)
和 R 打印出相同的结果:
[1] “4★” “4★” “3★” “5★” “5★” “4★” “4★” “3★” “3★” “4★” [11]“3★”“4★”“3★”“3★”“4★”“4★”“3★”“4★”“3★”“4★”
我很茫然。感谢您在这方面为我提供的帮助。
您的正则表达式与您的数据不匹配。它正在寻找一个星号后跟数字,但您的输入数据是一个数字后跟一个空格和一个星号。如果我们用空字符串替换空格和星号:
gsub(" ★","",star$fifa21_raw_data.W.F)
它返回以下内容
[1] "4" "4" "3" "5" "5" "4" "4" "3" "3" "4" "3" "4" "3" "3" "4" "4" "3" "4" "3" "4"
如果您想从字符向量进行转换,则可以使用 as.numeric() 函数。