我有一个数据框,想要以两种方式之一过滤它,通过列"this"或列"that".我希望能够将列名称称为变量.如何(dplyr如果有所作为)我是否通过变量引用列名?
library(dplyr)
df <- data.frame(this = c(1, 2, 2), that = c(1, 1, 2))
df
#   this that
# 1    1    1
# 2    2    1
# 3    2    2
df %>% filter(this == 1)
#   this that
# 1    1    1
Run Code Online (Sandbox Code Playgroud)
但是说我想使用变量column来保存"this"或"that",并过滤任何值的值column.双方as.symbol并get在其他环境中工作,但不是这个:
column <- "this"
df %>% filter(as.symbol(column) == 1)
# [1] this that
# <0 rows> (or 0-length row.names)
df %>% filter(get(column) == 1)
# Error in get("this") …Run Code Online (Sandbox Code Playgroud) 我想将其后的字符串拆分为句点.我试着strsplit()用"."的split说法,但没有得到我想要的结果.
s <- "I.want.to.split"
strsplit(s, ".")
[[1]]
 [1] "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
Run Code Online (Sandbox Code Playgroud)
我想要的输出是s在列表中拆分为4个元素,如下所示.
[[1]]
[1] "I"     "want"  "to"    "split"
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
我使用以下命令生成带抖动的散点图:
ddf = data.frame(NUMS = rnorm(500), GRP = sample(LETTERS[1:5],500,replace=T))
library(lattice)
stripplot(NUMS~GRP,data=ddf, jitter.data=T)
Run Code Online (Sandbox Code Playgroud)
我想在这些点上添加箱图(每组一个).我尝试搜索,但我无法找到代码绘制所有点(而不仅仅是异常值)和抖动.我该怎么解决这个问题.谢谢你的帮助.
我最近回答了一个关于for循环的问题.在测试我的代码速度后,我注意到在循环中使用seq()相反的速度会大大降低速度.  :for
看看这个非常简单的例子.f1()和之间的唯一区别f2()是for循环序列的变化,但f1()速度是其两倍f2().
f1 <- function() {
    x <- 1:5; y <- numeric(length(x))
    for(i in 1:length(x)) y[i] <- x[i]^2
    y
}
f2 <- function() {
    x <- 1:5; y <- numeric(length(x))
    for(i in seq(x)) y[i] <- x[i]^2
    y
}
library(microbenchmark)
microbenchmark(f1(), f2())
# Unit: microseconds
#  expr    min      lq  median     uq    max neval
#  f1() 10.529 11.5415 12.1465 12.617 33.893   100
#  f2() 25.052 25.5905 …Run Code Online (Sandbox Code Playgroud) 可能是一个非常基本的问题,但朋友和我试图跑str(packge_name),R给我们一个错误.现在我正在看它,我想知道R包是否像.zip文件一样,它是一个对象集合,比如图片和歌曲,但不是图片或歌曲本身.
如果我试图用图像浏览器打开一个图片拉链,它就不会知道该做什么,直到我解压缩它 - 就像我不能打电话str(forecast)但我可以str(ts)在我将预测包加载到我的库中后调用. ..
谁能让我直截了当?
我有一个大小约1 GB的CSV文件,由于我的笔记本电脑是基本配置,我无法在Excel或R中打开文件.但出于好奇,我想得到的行数文件.我怎么做,如果我能做到的话?
我有以下double值向量x,其中每个元素代表一个POSIX日期时间
x <- c(1417621083, 1417621204, 1417621384, 1417621564, 1417621623)
Run Code Online (Sandbox Code Playgroud)
我正在使用RJSONIO包,并希望继续这样做.
作为练习,我想将这些值转换为JSON文本,然后再将它们读回R,但是我很难将日期时间表示转换为一个很好的简化列表结果.在JSON中,日期需要采用特殊格式,因此值x将转换为以下内容:
dates <- c("/new Date(1417621083)", "/Date(1417621204)", "/Date(1417621384)", 
           "/Date(1417621564)", "/Date(1417621623)")
Run Code Online (Sandbox Code Playgroud)
当我dates通过RJSONIO解析器运行第二个任意向量时,一切似乎都很顺利.
library(RJSONIO)
make <- toJSON(list(date = dates, value = LETTERS))
Run Code Online (Sandbox Code Playgroud)
然后,当我使用stringFun带有日期的R-json C例程的选项解析新的JSON文本时,结果是一个双元素列表,第一个元素是列表,第二个元素是原子向量.  
(read <- fromJSON(make, stringFun = "R_json_dateStringOp"))
# $date
# $date[[1]]
# [1] "2014-12-03 07:38:03 PST"
# 
# $date[[2]]
# [1] "2014-12-03 07:40:04 PST"
# 
# $date[[3]]
# [1] "2014-12-03 07:43:04 PST"
# 
# $date[[4]]
# [1] "2014-12-03 07:46:04 …Run Code Online (Sandbox Code Playgroud) 当我将包加载到全局环境中时,我收到以下消息
> library(saber)
Attaching package: ‘saber’
The following objects are masked _by_ ‘.GlobalEnv’:
    load.schedule, teamStats
Run Code Online (Sandbox Code Playgroud)
我不知道这意味着什么,也不知道我是否应该关注它.
为什么要传递此消息,这是什么意思?
假设我有以下代码.在最后一步,我尝试安排它,代码不起作用,数据框继续按升序排列cyl.
library(dplyr)
# create a grouped data frame
df <- group_by(mtcars,cyl)
# rank car from best mpg to worst for every cyl
df <- mutate(df,rank = row_number(mpg)) 
# top 3 best mpg for each cyl
df <- filter(df,rank <= 3) 
# arrange by the number of cyl
df <- arrange(df,desc(cyl), rank) 
Run Code Online (Sandbox Code Playgroud)
有关为什么会发生这种情况的任何想法?
在R中,我想访问子文件夹中的某个文件.但我不想改变工作目录然后再回来.它浪费了很多时间.
例如,我在/home/phuong文件夹上工作.这是phuong的树形结构.
phuong-> data1, data2, data3.
data1-> abc.csv, def.csv, script1.R
data2-> bond.csv, option.csv, pricing.R
data3->.....
Run Code Online (Sandbox Code Playgroud)
所以我想在abc.csv,def.csv中加载数据并在pricing.R中运行代码.
因此,如果使用代码setwd,它会让我失去很多时间,看起来代码如此愚蠢,像这样:
setwd("/home/phuong/data1" );
read.csv("abc.csv");
read.csv("def.csv");
setwd("/home/phuong/data2" );
source("pricing.R")
Run Code Online (Sandbox Code Playgroud)
我失去了很多次从文件夹移动到另一个文件夹,但所有文件夹都在同一个文件夹中home/phuong/.所以我需要一些方法来访问子文件夹中的任何文件而无需setwd命令.请帮帮我,谢谢.