Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 替换一个数据集在另一个数据集中的引用_R_Powerbi - Fatal编程技术网

R 替换一个数据集在另一个数据集中的引用

R 替换一个数据集在另一个数据集中的引用,r,powerbi,R,Powerbi,我有一个名为Messages的数据集,其中包含C错误。我有第二个名为Usernames的数据集,其中包含一个用户名列表。我想删除邮件中出现的任何用户名。任何邮件的用户名不应超过1次。我原以为我可以用gsubfn实现这一点,但它输出所有空值。有人能告诉我最好的方法吗 usrNm <- c(dataset2$username) stripUsername <- function(x) {gsubfn(usrNm,'',x)} noUsernames <- within(datase

我有一个名为Messages的数据集,其中包含C错误。我有第二个名为Usernames的数据集,其中包含一个用户名列表。我想删除邮件中出现的任何用户名。任何邮件的用户名不应超过1次。我原以为我可以用gsubfn实现这一点,但它输出所有空值。有人能告诉我最好的方法吗

usrNm <- c(dataset2$username)
stripUsername <- function(x) {gsubfn(usrNm,'',x)}
noUsernames <- within(dataset,{Message=stripUsername(dataset$Message)})
这里有一个方法:

library(stringi)

stri_replace_all_fixed(dataset$Message, dataset2$Username, '', vectorize_all = FALSE)
输出

资料

library(stringi)

stri_replace_all_fixed(dataset$Message, dataset2$Username, '', vectorize_all = FALSE)
[1] "User:  sent bad data"             "Error occurred in System.Module."
[3] "Hello, world!"                    "Tracing request by !" 
dataset <- data.frame(
  Message = c("User: Mary.Jane sent bad data", "Error occurred in System.Module.", "Hello, world!", "Tracing request by Robert.Frost!"),
  stringsAsFactors = FALSE
)

dataset2 <- data.frame(
  Username = c("Mary.Jane", "Robert.Frost", "BB.Wolf")
)