Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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 - Fatal编程技术网

如果数据的每一行都被分隔开,有没有办法解析R中的数据?

如果数据的每一行都被分隔开,有没有办法解析R中的数据?,r,R,我现在有数据,每一行都是分开的。我的目标是能够将所有行合并到一个整洁的数据表中。在文本文件中,数据当前看起来是这样的: { "Name":"Person_1_Name" "Age":"15" } { "Name":"Person_2_Name" "Age":"25" } ........ 我想得到它,所以它看起来像: Name Age Person_1_Name 15 Person_2_Name

我现在有数据,每一行都是分开的。我的目标是能够将所有行合并到一个整洁的数据表中。在文本文件中,数据当前看起来是这样的:

{    "Name":"Person_1_Name"
     "Age":"15"
     }
{    "Name":"Person_2_Name"
     "Age":"25"
     } 
........
我想得到它,所以它看起来像:

Name                Age
Person_1_Name       15
Person_2_Name       25
.....

有没有办法在R内实现这一点?我所知道的最粗糙的方法是编写一个搜索函数,但我想知道是否还有其他方法可以让人们知道。谢谢大家!

如果数据实际如下所示:

txt <- '[{    "Name":"Person_1_Name",
     "Age":"15"
     },
{    "Name":"Person_2_Name",
     "Age":"25"
     }]'
给出:

     Name            Age 
[1,] "Person_1_Name" "15"
[2,] "Person_2_Name" "25"

如果没有,那么先把它按摩成那种形状。

当然。如果这实际上是JSON格式,请使用库。但您也可以只解析原始文本

yr_data <-
'{    "Name":"Person_1_Name"
      "Age":"15"
      }
 {    "Name":"Person_2_Name"
      "Age":"25"
      }'

# split by line
yr_data <- unlist(strsplit(yr_data, '\n'))

# subset to only the lines with : in them
yr_data <- grep(':', yr_data, value=T)

# split on the colon
yr_data <- unlist(strsplit(yr_data, ':'))

# name is in every 2nd place, age in every 4th
data.frame(Name=yr_data[seq(2, length(yr_data), by=4)],
           Age=yr_data[seq(4, length(yr_data), by=4)])

我不是专家,但它看起来像一个JSON对象。也许你可以试着处理这些对象?
yr_data <-
'{    "Name":"Person_1_Name"
      "Age":"15"
      }
 {    "Name":"Person_2_Name"
      "Age":"25"
      }'

# split by line
yr_data <- unlist(strsplit(yr_data, '\n'))

# subset to only the lines with : in them
yr_data <- grep(':', yr_data, value=T)

# split on the colon
yr_data <- unlist(strsplit(yr_data, ':'))

# name is in every 2nd place, age in every 4th
data.frame(Name=yr_data[seq(2, length(yr_data), by=4)],
           Age=yr_data[seq(4, length(yr_data), by=4)])
  Name           Age
1 Person_1_Name  15
2 Person_2_Name  25