R:如果另一列以“开始”开头,则使用true/false创建新列<&引用;

R:如果另一列以“开始”开头,则使用true/false创建新列<&引用;,r,R,我有一个dataframe,它的列如下: x apple orange <pear> orange <straw-berry> 我尝试过类似的方法,但没有成功 d$y<- "False" d$y[d$x[grep('<', rownames(d$x)),]] <- "True" d$y如果给定字符串与模式匹配,则来自stringr包的stru detect将返回TRUE/FALSE-此处“d$y尝试的问题是grep后面的逗号。

我有一个dataframe,它的列如下:

x       
apple 
orange  
<pear> 
orange 
<straw-berry>
我尝试过类似的方法,但没有成功

d$y<- "False"
d$y[d$x[grep('<', rownames(d$x)),]] <- "True"

d$y如果给定字符串与模式匹配,则来自
stringr
包的
stru detect
将返回TRUE/FALSE-此处“
d$y尝试的问题是grep后面的逗号。
d$y
不是数据帧,而是一维列,而是
[,]
试图将其视为二维对象。删除该逗号,您的代码将正常工作。(尽管使用逻辑
TRUE
可能比字符串
“TRUE”
更好。此外,您的代码不会检查
x
是否以
子字符串开头(df$x,1,1)=='这使得
TRUE
对于带有“Yes”的元素,您可以使用str_sub(x,0,1)减去字符串“x”的第一个字母,或者更狭义地定义模式,例如。“^
d$y<- "False"
d$y[d$x[grep('<', rownames(d$x)),]] <- "True"
df$y <- str_detect(x, "<")