小编Ric*_*cky的帖子

R用tidyr传播多个列

拿这个样本变量

df <- data.frame(month=rep(1:3,2),
                 student=rep(c("Amy", "Bob"), each=3),
                 A=c(9, 7, 6, 8, 6, 9),
                 B=c(6, 7, 8, 5, 6, 7))
Run Code Online (Sandbox Code Playgroud)

我可以使用spreadtidyr将其更改为宽格式.

> df[, -4] %>% spread(student, A)
  month Amy Bob
1     1   9   8
2     2   7   6
3     3   6   9
Run Code Online (Sandbox Code Playgroud)

但我怎么能传播两个值,例如既AB,使得输出是一样的东西

  month Amy.A Bob.A Amy.B Bob.B
1     1     9     8     6     5
2     2     7     6     7     6
3     3     6     9     8     7
Run Code Online (Sandbox Code Playgroud)

r dataframe dplyr tidyr

90
推荐指数
1
解决办法
7万
查看次数

Excel - 根据值的更改着色整行

我想根据一个单元格的值在Excel中对整行进行着色.例如,说我有下面的行:

**File No**
1122
1122
1144
1155
1155
1155
1166
Run Code Online (Sandbox Code Playgroud)

我希望前两行(文件#的值是1122)用颜色1加阴影,下一行(文件#的值是1144)用彩色2加阴影,接下来的3行(文件#的值为1155)为阴影颜色1,下一行(文件#的值为1166)为阴影颜色2

excel

40
推荐指数
5
解决办法
11万
查看次数

按名称添加两个向量

我有两个命名的向量

v1 <- 1:4
v2 <- 3:5
names(v1) <- c("a", "b", "c", "d")
names(v2) <- c("c", "e", "d")
Run Code Online (Sandbox Code Playgroud)

我想通过名称添加它们,即预期的结果是

> v3  
a b c d e   
1 2 6 9 4
Run Code Online (Sandbox Code Playgroud)

有没有办法以编程方式在R中执行此操作?请注意,名称可能不一定按排序顺序排列,v2如上所述.

aggregate r vector names addition

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

在dplyr中使用filter_,其中字段和值都在变量中

我想使用在变量中定义的字段来过滤数据帧,以选择也在变量中的值.说我有

df <- data.frame(V=c(6, 1, 5, 3, 2), Unhappy=c("N", "Y", "Y", "Y", "N"))
fld <- "Unhappy"
sval <- "Y"
Run Code Online (Sandbox Code Playgroud)

我想要的价值是df[df$Unhappy == "Y", ].

我已经阅读了nse小插图试图使用,filter_但不太明白.我试过了

df %>% filter_(.dots = ~ fld == sval)
Run Code Online (Sandbox Code Playgroud)

什么也没有回来.我得到了我想要的东西

df %>% filter_(.dots = ~ Unhappy == sval)
Run Code Online (Sandbox Code Playgroud)

但显然这违背了使用变量来存储字段名称的目的.请问有什么线索吗?最终我想使用它在哪里fld是字段名称sval的向量,并且是每个字段的过滤器值的向量fld.

r dplyr

12
推荐指数
3
解决办法
5773
查看次数

按名称删除嵌套R列表中的元素

我有一个像这样的嵌套元素

> x <- list(a=list(from="me", id="xyz"), b=list(comment=list(list(message="blabla", id="abc"), list(message="humbug", id="jkl"))), id="123")
> str(x)
List of 3
 $ a :List of 2
  ..$ from: chr "me"
  ..$ id  : chr "xyz"
 $ b :List of 1
  ..$ comment:List of 2
  .. ..$ :List of 2
  .. .. ..$ message: chr "blabla"
  .. .. ..$ id     : chr "abc"
  .. ..$ :List of 2
  .. .. ..$ message: chr "humbug"
  .. .. ..$ id     : chr "jkl"
 $ id: chr "123"
Run Code Online (Sandbox Code Playgroud)

如何 …

r list

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

提取两个字符串之间不同的不同字符

我有两个字符串a <- "AERRRTX"; b <- "TRRA".

我想提取a未使用的字符b,即"ERX"

我试图在回答这两个字符串之间不同提取字符,它使用setdiff.它返回"EX",因为b它有"R" setdiff并将消除所有三个"R" a.我的目标是将每个角色视为不同的角色,因此只a应消除三个R中的两个角色.

有关我可以使用什么而不是setdiff其他方法来实现我的输出的任何建议?

string r

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

RTextTools create_matrix返回非字符参数错误

我是R的文本处理新手.我正在尝试下面的简单代码

library(RTextTools) texts <- c("This is the first document.", "This is the second file.", "This is the third text.") matrix <- create_matrix(texts,ngramLength=3)

这是问题2和3个词使用R TM包的短语中的答案之一

但是,它会产生错误Error in FUN(X[[2L]], ...) : non-character argument.

我删除ngramLength参数时可以生成文档术语矩阵,但我需要搜索某些字长的短语.任何替代或更正的建议?

r text-mining

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

错误:查看数据帧尾时,C堆栈使用率太接近极限

我有一个appt91.2MB 的数据框,包含29255个51变量的观察.

当我试图检查它的结束时tail(appt),我得到了错误

Error: C stack usage 20212630 is too close to the limit

我不知道如何解决这个问题.关于我能做什么的任何建议?

作为附加信息,我同时在内存中有一些几乎相当大的其他变量,包括一个90.2MB字符向量和一个42.3MB数据帧77405 obs.x 60个变量.调用tail这两个其他变量不会触发任何错误.

编辑: 我已经缩小了只有在访问最后一行时才会发生错误.即appt[29254, ]很好,appt[29255, ]抛出错误.

r

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

使用Windows身份验证访问R中的sharepoint

我正在尝试从我公司的Intranet sharepoint读取数据.

require(httr)
url <- "http://<domain>/<path>/_vti_bin/ListData.svc/<something>"
r <- GET(url)
Run Code Online (Sandbox Code Playgroud)

问题是,访问Sharepoint使用Windows身份验证.以上,预计会给我401 Unauthorized错误.

如何将我的Windows身份验证合并到R中的请求中,而无需在GET参数中以明文形式键入我的凭据?(使用authenticate()我的凭据工作).

sharepoint r windows-authentication

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

带有括号或dplyr group_by的其他标点符号的列名

我有一个导入的数据框,其列名具有各种标点,包括括号,例如BILLNG.STATUS.(COMPLETED./.INCOMPLTE).

我试图用group_bydplyr做一些总结,像

df <- df %>% group_by(ORDER.NO, BILLNG.STATUS.(COMPLETED./.INCOMPLTE))
Run Code Online (Sandbox Code Playgroud)

这带来了错误 Error in mutate_impl(.data, dots) : could not find function "BILLNG.STATUS."

如果没有更改列名,有没有办法直接处理这些列名group_by

r dplyr

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