Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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
Regex 将带有空格的csv设置字段读取为NA_Regex_R_Read.csv - Fatal编程技术网

Regex 将带有空格的csv设置字段读取为NA

Regex 将带有空格的csv设置字段读取为NA,regex,r,read.csv,Regex,R,Read.csv,我有一个csv文件,如下所示: A, B, C, 1, 2 1, 3, 3, 1, 0, 4, 1, 0 5, ... 是否可以设置na.string以将所有带空格的字段分配给na(例如,类似于regexfunction(x){x[grep(patt=“\\”,x)]我们可以在列上循环,并通过转换为numeric将其设置为na df1[] <- lapply(df1, as.numeric) df1[]我们可以在列上循环,并通过转换为numeric将其设置为NA df1[] &

我有一个csv文件,如下所示:

A, B,  C, 
1, 2 1, 3,
3, 1, 0, 
4, 1, 0 5,
 ...

是否可以设置na.string以将所有带空格的字段分配给na(例如,类似于
regex
function(x){x[grep(patt=“\\”,x)]我们可以在列上循环,并通过转换为
numeric
将其设置为
na

df1[] <- lapply(df1, as.numeric)

df1[]我们可以在列上循环,并通过转换为
numeric
将其设置为
NA

df1[] <- lapply(df1, as.numeric)

df1[]我不知道这将如何翻译,但我将使用以下正则表达式匹配包含空格的字段:

[^, ]+ [^, ]+
即:

  • 逗号或空格以外的某些字符(
    [^,]+
  • 后跟空格(
  • 以及除逗号或空格以外的更多字符(
    [^,]+

您可以看到它的作用。

我不知道这将如何转换,但我将使用以下正则表达式匹配包含空格的字段:

[^, ]+ [^, ]+
即:

  • 逗号或空格以外的某些字符(
    [^,]+
  • 后跟空格(
  • 以及除逗号或空格以外的更多字符(
    [^,]+

你可以在行动中看到它。

关于@akrun答案的变化(我喜欢)

假设所有列都是
字符
,则读取文件,然后将所有列从
dplyr
转换为
数字
,并使用
mutate\u each

使用read调用中已经存在的
colClasses=“numeric”
不起作用(我不知道为什么:(),因为

从中我们了解到,我们可以制作一个新函数来进行转换

setAs("character", "numwithspace", function(from) as.numeric(from) )
read.csv("test.csv", colClasses="numwithspace")

  A  B  C
1 1 NA  3
2 3  1  0
3 4  1 NA

@akrun答案的变化(我喜欢)

假设所有列都是
字符
,则读取文件,然后将所有列从
dplyr
转换为
数字
,并使用
mutate\u each

使用read调用中已经存在的
colClasses=“numeric”
不起作用(我不知道为什么:(),因为

从中我们了解到,我们可以制作一个新函数来进行转换

setAs("character", "numwithspace", function(from) as.numeric(from) )
read.csv("test.csv", colClasses="numwithspace")

  A  B  C
1 1 NA  3
2 3  1  0
3 4  1 NA

您可以让字段只包含空格,还是始终至少包含另一个字符?没有字段只包含空格--始终至少包含其他字符…您可以让字段只包含空格,还是始终至少包含其他字符?没有字段只包含空格--始终至少包含其他字符。。。它将所有数字字段转换为字符串,即
“1”,NA,“3”
而不是
1,NA,3
为.numeric!应该想到这个简单的方法!非常感谢!它将所有数字字段转换为字符串,即
“1”,NA,“3”
而不是
1,NA,3
为.numeric!应该想到这个简单的方法!非常感谢!