Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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_Regex - Fatal编程技术网

模式匹配结果在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

df
as.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