首页 > 解决方案 > 无法删除数据框中的列,R

问题描述

我正在使用 R 读取 api 并能够检索数据,但是,数据本身以 JSON 格式检索,似乎分为 3 个部分。

使用将 json 数据转换为 df

fromJSON(data)

它是成功的。

下一步是删除不必要的列,这是我当前的问题,并且无法删除我最近发现数据在数据框中的数据格式的任何列。

lead <- GET("some api", add_headers(Authorization="Bearer some apikey"))
data <- content(lead,"text") #display the data looks something like below

在此处输入图像描述

数据似乎被格式化为 3 个部分,我认为问题是阻止删除列

$'data'
$included
$link

我查看了多个关于在 df 中删除列名的 stackoverflow 帖子和 r 指南,但没有成功

> df <- df[,-1]
Error in df[, -1] : incorrect number of dimensions

> df <- subset(df, select = -c("$'data'$id"))
Error in subset.default(df, select = -c("$'data'$id")) : 
  argument "subset" is missing, with no default

最终目标是删除 $links 中的所有内容、$included 中的几列和 $data 中的几列

标签: rdataframe

解决方案


完全删除links

df$links <- NULL

从 中删除第 1 列和第 2 列included

df$included[,c(1, 2)] <- NULL

从 中删除第 3 列和第 4 列data

df$data[,c(3, 4)] <- NULL

对于一个工作示例,请参见下面的 iris 和 mtcars:

exr <- list(iris = iris, mtcars = mtcars)
head(exr$mtcars)
|                  |  mpg| cyl| disp|  hp| drat|    wt|  qsec| vs| am| gear| carb|
|:-----------------|----:|---:|----:|---:|----:|-----:|-----:|--:|--:|----:|----:|
|Mazda RX4         | 21.0|   6|  160| 110| 3.90| 2.620| 16.46|  0|  1|    4|    4|
|Mazda RX4 Wag     | 21.0|   6|  160| 110| 3.90| 2.875| 17.02|  0|  1|    4|    4|
|Datsun 710        | 22.8|   4|  108|  93| 3.85| 2.320| 18.61|  1|  1|    4|    1|
|Hornet 4 Drive    | 21.4|   6|  258| 110| 3.08| 3.215| 19.44|  1|  0|    3|    1|
|Hornet Sportabout | 18.7|   8|  360| 175| 3.15| 3.440| 17.02|  0|  0|    3|    2|
|Valiant           | 18.1|   6|  225| 105| 2.76| 3.460| 20.22|  1|  0|    3|    1|

exr$mtcars[,c(1,2)] <- NULL

head(exr$mtcars)
|                  | disp|  hp| drat|    wt|  qsec| vs| am| gear| carb|
|:-----------------|----:|---:|----:|-----:|-----:|--:|--:|----:|----:|
|Mazda RX4         |  160| 110| 3.90| 2.620| 16.46|  0|  1|    4|    4|
|Mazda RX4 Wag     |  160| 110| 3.90| 2.875| 17.02|  0|  1|    4|    4|
|Datsun 710        |  108|  93| 3.85| 2.320| 18.61|  1|  1|    4|    1|
|Hornet 4 Drive    |  258| 110| 3.08| 3.215| 19.44|  1|  0|    3|    1|
|Hornet Sportabout |  360| 175| 3.15| 3.440| 17.02|  0|  0|    3|    2|
|Valiant           |  225| 105| 2.76| 3.460| 20.22|  1|  0|    3|    1|

推荐阅读