小编Arm*_*min的帖子

在data.frame中的列中解压缩和合并列表

我有以下内容data.frame:

id     name   altNames
1001   Joan   character(0)      
1002   Jane   c("Janie", "Janet", "Jan")
1003   John   Jon
1004   Bill   Will
1005   Tom    character(0)      
Run Code Online (Sandbox Code Playgroud)

altNames可以为空(即字符(0)),只有一个名称或名称列表.我想要的是一个data.frame(或一个列表),其中每个条目name和/或altNames只出现一次与对应的id一样,如下所示:

id     name
1001   Joan
1002   Jane
1002   Janie
1002   Janet
1002   Jan
1003   John
1003   Jon
1004   Bill
1004   Will
1005   Tom
Run Code Online (Sandbox Code Playgroud)

这样做最有效的方法是什么?dplyr利用甚至更好.谢谢

编辑:这是数据:

df <- data_frame(
  id = c("1001", "1002","1003", "1004", "1005"), 
  name = c("Joan", "Jane", "John", "Bill", "Tom"), 
  altNames = list(character(0), c("Janie", …
Run Code Online (Sandbox Code Playgroud)

r dataframe dplyr data.table

14
推荐指数
3
解决办法
1351
查看次数

JSON文件中的"NA"转换为NA逻辑

我有json包含国家数据的文件.其中一个文件包含以下数据:

"[{\"count\":1,\"subject\":{\"name\":\"Namibia\",\"alpha2\":\"NA\"}}]"
Run Code Online (Sandbox Code Playgroud)

我将以下代码转换jsondata.frame使用jsonlite包:

df = as.data.frame(fromJSON(jsonfile), flatten=TRUE)) 
Run Code Online (Sandbox Code Playgroud)

我期待一个data.frame数字和字符串:

count subject.name subject.alpha2
1      Namibia             "NA"
Run Code Online (Sandbox Code Playgroud)

相反,NAalpha2代码会自动转换为NA逻辑,这就是我得到的:

str(df)
$ count         : int 1
$ subject.name  : chr "Namibia"
$ subject.alpha2: logi NA
Run Code Online (Sandbox Code Playgroud)

我希望alpha2是一个字符串,而不是逻辑.我该如何解决?

json r dataframe jsonlite

6
推荐指数
1
解决办法
452
查看次数

"NA"字符串转换为<NA>

我有一个csv国家名称及其iso代码的文件.这是它的样子:

"Name","Code"
"Afghanistan","AF"
"Albania","AL"
"Algeria","DZ"
"Namibia","NA"
Run Code Online (Sandbox Code Playgroud)

data.frame使用以下代码阅读它:

cc = read.csv("countries.csv", header=TRUE, stringsAsFactors=FALSE, 
                                           colClasses = c("character")) 
Run Code Online (Sandbox Code Playgroud)

这是数据的样子:

Name         Code
Afghanistan  AF
Albania      AL
Algeria      DZ
Namibia      <NA>
Run Code Online (Sandbox Code Playgroud)

即使我明确设置 ,字符串"NA"也会转换为.<NA>colClasses = c("character")

我如何"NA"展示作为"NA"data.frame

csv r dataframe

4
推荐指数
1
解决办法
508
查看次数

标签 统计

dataframe ×3

r ×3

csv ×1

data.table ×1

dplyr ×1

json ×1

jsonlite ×1