r - 无法删除数据框中的列,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 中的几列
解决方案
完全删除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|
推荐阅读
- python - 将 Pandas 数据帧保存到 csv 时更改浮动值的原因
- python - 如何腌制抓取数据而不是打印数据?
- node.js - "type": "module" in package.json throw new ERR_REQUIRE_ESM(filename, parentPath, packageJsonPath)
- android - Android Studio 未连接到互联网并获得 403 响应
- angular - 在Angular中如何将一个组件发送到另一个没有父子关系的数据,url中没有queryString
- java - 如何在不使用 SMTP 的情况下从 java 程序发送 Outlook 邮件
- typescript - 如何定义“类的子类”类型?
- php - Docker、Nginx、localhost 没有响应
- javascript - 在 firestore 中使用 whereGreaterThanOrEqualTo 时出错
- c - 忽略 C 上的信号