当前位置: 首页 > 知识库问答 >
问题:

从另一列添加基于grep的值的列-R[duplicate]

党祖鹤
2023-03-14

我有一个包含这类信息的数据帧:

ID    DESCRIPTION   
1     aaabccdd       
2     abcdFOOsajd    
3     1243abcsd      
4     abc123FOO      

我想添加第三列,如果描述上有“*foo*”,则该列将接收值1,以获得如下内容:

ID    DESCRIPTION    TARGET
1     aaabccdd       0
2     abcdFOOsajd    1
3     1243abcsd      0
4     abc123FOO      1
df$TARGET <- ifelse(df$DESCRIPTION == grep("FOO", df$DESCRIPTION), "1", "0")

Error in `==.default`(df$DESCRIPTION, grep("FOO", df$DESCRIPTION)) :
  longer object length is not a multiple of shorter object length
df$TARGET <- ifelse(grep("FOO", df$DESCRIPTION)==TRUE, "1", "0")

Error in `$<-.data.frame`(`*tmp*`, "TARGET", value = c("0", "0", "0",  : 
  replacement has 826768 rows, data has 34035650

共有1个答案

叶建柏
2023-03-14

grepl()grep类似,但返回的是逻辑向量(正是您想要的),而不是指示索引的向量。因此,您可以简单地执行以下操作:

df$TARGET <- grepl("FOO", df$DESCRIPTION)
 类似资料:
  • 我有一个名为student的表,它有以下列名和数据 有没有办法添加列mark1,mark2和mark3,并插入总共添加的值,你们可以建议我关于这个.iam使用sqlplus数据库

  • 我有一个带有key_number列的数据帧df1,以及带有key_number和日期列的数据帧df2。如何将date的值分配为df1中的新列,但与键号相关联?当使用loc时,它根据顺序分配值,导致df1中错误的行(键的错误日期)。此外,数据帧具有不同的形状,因此我在df1中保留了空值。 提前感谢:)

  • 如何根据列上的0到max(int)值自动递增列。 假设,我希望增量从$0开始。我必须为此代码编辑什么? 进入

  • 问题内容: 我在尝试获取另一列中的字符串值的字符计数列时遇到问题,但还没有弄清楚如何有效地做到这一点。 显然,这涉及首先创建一个null列,然后将其重写,这对我的数据集要花费很长时间。那么获得这样的东西最有效的方法是什么 我已经检查了很多,但是还无法弄清楚。 问题答案: Pandas为此使用了矢量化字符串方法:。要创建新列,您可以编写: 例如: 这应该比使用Python循环在DataFrame上循

  • 我有一个非常简单的问题。然而,我所能找到的都是非常复杂的答案,并不完全符合我的需求。 最接近的,我在这里发现: 弗洛德尔和埃迪的回答(data.table) 但是,我想额外指定如何根据不同列中的值处理指定列中的NA。 我有一个data.table,其中包含NA列,其中< code>fac是一个因子变量。 我想做的是根据< code>iso3c中的值将值< code>D和< code>E分配给< c