小编JMQ*_*JMQ的帖子

将*most*变量设置为缺失,同时保留少数几个的内容

我有一个像这样的数据集(但有几百个变量):

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 …

sas datastep recode

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

字符串作为R中的函数参数

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

string arguments r function

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

R - 找到邻居的邻居并将它们存储在唯一的邻接矩阵中

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某个节点的邻居。ji

例如A3是 的邻居1,是和1的邻居。但既不是邻居,也不是。在所需的邻接矩阵 中,我希望表示的行/列对于表示节点和 的列包含值 1 ,但不包含节点。解决方案矩阵应如下所示:48348N3481N

                   #1 2 3 4 5 6 7 8 9
N <- …
Run Code Online (Sandbox Code Playgroud)

algorithm r graph matrix igraph

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

Google Places API 和 R -- 在数据框中调用第二列返回六个单独的列

我正在尝试存储我通过 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),我得到了一组向量 - 正如我在查看数据框时所期望的那样......

在此处输入图片说明

...但看起来数据框包含数据框:

在此处输入图片说明

这里发生了什么?

在此处输入图片说明

进一步来说:

  1. 数据框如何包含数据框,为什么View()将嵌套数据框显示为向量?
  2. 在处理这种类型的数据时,您希望看到的列View()只是向量 - 用于操作和导出目的 - 是否有任何最佳实践?我即将把这个所谓的数据帧的每个向量转换geometry成单独的对象,并将cbind()结果转换为HAVE_PLACES$results. 但这感觉很疯狂。

r list dataframe google-places-api googleway

2
推荐指数
1
解决办法
626
查看次数

更改变量长度而不收到警告

我在数据集 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 社区论坛的示例似乎没有描述为什么会出现此警告,或者如何避免它。有什么想法吗?

sas variable-length

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

在多种条件下重新编码 dplyr

如果变量采用 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)

r dplyr recode

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