模式匹配结果在R中的应用
我有一个带有字符串值的数据帧模式匹配结果在R中的应用,r,regex,R,Regex,我有一个带有字符串值的数据帧 id str a 1 b 10 c 0 d 102 e 010 我需要创建一个标志,如果str中有一个0,则标志为1,否则标志为0 我正在使用以下代码: df$flag <-ifelse(grep('0', df$str) == "1", 1, 0) 鉴于 grep('0',df$str[2])返回1 你知道我如何使用这个#df$flag吗?你可以这样使用grepl #df$flag <- NULL #unneeded. skip it.
id str
a 1
b 10
c 0
d 102
e 010
我需要创建一个标志,如果str中有一个0,则标志为1,否则标志为0
我正在使用以下代码:
df$flag <-ifelse(grep('0', df$str) == "1", 1, 0)
鉴于
grep('0',df$str[2])返回1
你知道我如何使用这个
#df$flag吗?你可以这样使用grepl
#df$flag <- NULL #unneeded. skip it.
df$flag <- ifelse(grepl('0',df$str), 1, 0)
df <- read.table(text = "id str
a 1
b 10
c 0
d 102
e 010", header = T)
df$Flag <- ifelse(grepl(0,df$str), 1, 0)
> df
id str Flag
1 a 1 0
2 b 10 1
3 c 0 1
4 d 102 1
5 e 10 1
dfas.numeric(grepl(“0”,df$str))
@RonakShah啊,你完全正确。在用ifelse矢量化语句填充另一列之前,我习惯用NA初始化该列。这称为JAVA
hangover@Hardikgupta想知道什么是JAVA遗留问题吗?不反对语言(我喜欢它)-在JAVA中,我们需要在使用前初始化每个变量,不像R蟒蛇。@Hardikgupta哈哈,我明白了。有时对于NA
value,我在使用ifelse
语句时遇到错误。实际上,这就是我习惯使用NA
初始化的原因。我一点也不擅长Java:)
df <- read.table(text = "id str
a 1
b 10
c 0
d 102
e 010", header = T)
df$Flag <- ifelse(grepl(0,df$str), 1, 0)
> df
id str Flag
1 a 1 0
2 b 10 1
3 c 0 1
4 d 102 1
5 e 10 1