在matlab中,有一种方法可以在一个向量中找到值,但在另一个向量中却找不到.
例如:
x <- c(1,2,3,4)
y <- c(2,3,4)
Run Code Online (Sandbox Code Playgroud)
是那里会告诉我,在价值的任何功能x,在不y为1?
我有2个因子列,我想创建第三列,它告诉我第二列是什么,第一列没有.它与这篇文章非常相似,但是我从df使用setdiff()函数到使用函数时遇到了麻烦.
例如:
library(dplyr)
y1 <- c("a.b.","a.","b.c.d.")
y2 <- c("a.b.c.","a.b.","b.c.d.")
df <- data.frame(y1,y2)
Run Code Online (Sandbox Code Playgroud)
列y1有a.b.和列y2有a.b.c..我想要一个三分之一的列返回c.或只是c.
> df
y1 y2 col3
1 a.b. a.b.c. c.
2 a. a.b. b.
3 b.c.d. b.c.d.
Run Code Online (Sandbox Code Playgroud)
我认为这是应该的组合strsplit和setdiff,但我不能得到它的工作.
我试图将其转换factor为character,然后我尝试应用于strsplit()结果,但输出对我来说似乎很奇怪.它似乎在列表中创建了一个列表,这使得很难传递给它setdiff()
#convert factor to character
df <- df %>% mutate_if(is.factor, as.character)
lapply(df$y1,function(x)(strsplit(x,split = "[.]")))
> lapply(df$y1,function(x)(strsplit(x,split = "[.]")))
[[1]]
[[1]][[1]]
[1] …Run Code Online (Sandbox Code Playgroud)