我有一个像这样的数据集(但有几百个变量):
id q1 g7 q3 b2 zz gl az tre
1 1 2 1 1 1 2 1 1
2 2 3 3 2 2 2 1 1
3 1 2 3 3 2 1 3 3
4 3 1 2 2 3 2 1 1
5 2 1 2 2 1 2 3 3
6 3 1 1 2 2 1 3 3
Run Code Online (Sandbox Code Playgroud)
我想保留ID,b2和tre,但是将其他所有内容都丢失了.在这个小的数据集中,我可以很容易地使用call missing (q1, g7, q3, zz, gl, az)
- 但在一个包含更多变量的集合中,我实际上想说call missing (of _ALL_ *except …
Dataframechocolates
列出了糖果的类型以及对每种糖果的一组评级:
ID sweetness filling crash
snickers 0.67 0.55 0.40
milky_way 0.81 0.53 0.56
...
Run Code Online (Sandbox Code Playgroud)
我正在编写一个函数,它接受文件名的参数、特定类型糖果的 ID 以及我感兴趣的分数 ( sweetness
, filling
, or crash
) 并返回该文件中某个糖果的某个分数。例如,如果我想要“士力架”的sweetness
评分ID
(如下面的语法)......
> chocolates$sweetness[chocolates$ID=="snickers"]
[1] 0.67
Run Code Online (Sandbox Code Playgroud)
...某些函数candyranks(data=, ID=, score=)
应该返回相同的值。这是我写的:
candyranks <- function(data, id, score){
data$score[chocolates$ID=="snickers"]
}
Run Code Online (Sandbox Code Playgroud)
但candyranks(data=chocolates, ID = "snickers", score = sweetness)
返回值NULL
. 我已经确定ID
是一个字符向量。关于为什么它不会返回值的任何想法0.67
?
A
是存储为矩阵对象的邻接矩阵:
#1 2 3 4 5 6 7 8 9
A <- matrix(data=c( 0,0,1,1,0,0,0,1,0, #1
0,0,0,0,1,0,0,0,0, #2
1,0,0,0,0,0,0,0,0, #3
1,0,0,0,0,0,0,0,1, #4
0,1,0,0,0,1,0,0,0, #5
0,0,0,0,1,0,0,0,0, #6
0,0,0,0,0,0,0,0,0, #7
1,0,0,0,0,0,0,0,0, #8
0,0,0,1,0,0,0,0,0 ),#9
nrow=9, ncol=9)
Run Code Online (Sandbox Code Playgroud)
的图表A
如下所示:
我正在尝试识别邻居的邻居,并创建一个新的邻接矩阵,其值捕获距给定节点仅一步之遥的N
某个节点的邻居。j
i
例如A
,3
是 的邻居1
,是和1
的邻居。但既不是邻居,也不是。在所需的邻接矩阵 中,我希望表示的行/列对于表示节点和 的列包含值 1 ,但不包含节点。解决方案矩阵应如下所示:4
8
3
4
8
N
3
4
8
1
N
#1 2 3 4 5 6 7 8 9
N <- …
Run Code Online (Sandbox Code Playgroud) 我正在尝试存储我通过 Google Places API 从列表中检索到的数据框的结果。我对 API 的调用...
library(googleway)
HAVE_PLACES <- google_places(search_string = "grocery store",
location = c(35.4168, -80.5883),
radius = 10000, key = key)
Run Code Online (Sandbox Code Playgroud)
...返回一个列表对象HAVE_PLACES
:
此列表中的第三个对象 - results
- 是一个数据框,对 API 调用中检索到的每个位置都有一个观察结果。当我打电话时View(HAVE_PLACES$results)
,我得到了一组向量 - 正如我在查看数据框时所期望的那样......
...但看起来数据框包含数据框:
这里发生了什么?
进一步来说:
View()
将嵌套数据框显示为向量?View()
只是向量 - 用于操作和导出目的 - 是否有任何最佳实践?我即将把这个所谓的数据帧的每个向量转换geometry
成单独的对象,并将cbind()
结果转换为HAVE_PLACES$results
. 但这感觉很疯狂。我在数据集 OLD 上有一个名为 ID 的变量,我需要将长度从 13 更改为 12 以进行合并。以下是与该变量关联的元数据。
Variable Type Len Format Informat Label
ID Char 13 $12. $12. 'Person ID'
Run Code Online (Sandbox Code Playgroud)
(此文件中每个 ID 值的内容始终恰好是 12 个字符)
当我尝试编辑 DATA 步骤中 set 语句之前的长度时,我收到警告。当我编辑长度和格式时也会发生同样的情况。
data NEW;
length ID $12;
format ID $12.;
set OLD;
run;
...
WARNING: Multiple lengths were specified for the variable AN_RESEARCHID by
input data set(s). This can cause truncation of data.
Run Code Online (Sandbox Code Playgroud)
SAS 社区论坛的示例似乎没有描述为什么会出现此警告,或者如何避免它。有什么想法吗?
如果变量采用 dplyr 中的三个值之一,我想将其重新编码为“缺失”。考虑以下数据框have
:
id married hrs_workperwk
1 1 40
2 1 55
3 1 70
4 0 -1
5 1 99
6 0 -2
7 0 10
8 0 40
9 1 45
Run Code Online (Sandbox Code Playgroud)
-1、-2 和 99 是非法值。新的数据框want
应如下所示:
id married hrs_workperwk
1 1 40
2 1 55
3 1 70
4 0 NA
5 1 NA
6 0 NA
7 0 10
8 0 40
9 1 45
Run Code Online (Sandbox Code Playgroud)
我可以使用基本 R 来快速解决这个问题,但是当我已经使用mutate()
. 唉,这意味着我目前使用多个嵌套if_else()
函数:
want …
Run Code Online (Sandbox Code Playgroud)