在这个主题中,我试图在这里包括所有常见问题及其答案.我希望这对某人有用.
一般问题:如何r从n对象生成对象序列?
总共存在这类2^3=8问题.
[更新]
Josh O'Brien认为这8个问题与十二种方式有关.实际上,"不同"的问题以十二种方式包含在内,而"非独特"的问题则不包括在内.无论如何,将这里的8个问题与12倍的方式进行比较是很有趣的.请参阅注释以获取进一步的读数.
我正在尝试将字符串"2013-JAN-14"转换为日期,如下所示:
sdate1 <- "2013-JAN-14"
ddate1 <- as.Date(sdate1,format="%Y-%b-%d")
ddate1
Run Code Online (Sandbox Code Playgroud)
但我得到:
[1] NA
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么 ?我应该为此安装一个包(我尝试安装chron).
找到包中所有相关函数的最佳方法是什么?我目前正在通过caTools包.如果我这样做?caTools或者??caTools我只是想要搜索那些被调用的函数而不是函数.有没有一种简单的方法来访问R gui中的所有功能?有没有什么好方法可以搜索功能?
如果我想检查变量是否继承自某个类,我可以使用is或inherits.
class(letters)
## [1] "character"
is(letters, "character")
## [1] TRUE
inherits(letters, "character")
## [1] TRUE
Run Code Online (Sandbox Code Playgroud)
我是否应该选择使用哪一种,并且它们是否会返回不同的值?
我有一个数据框,遵循以下长模式:
Name MedName
Name1 atenolol 25mg
Name1 aspirin 81mg
Name1 sildenafil 100mg
Name2 atenolol 50mg
Name2 enalapril 20mg
Run Code Online (Sandbox Code Playgroud)
并希望得到以下(我不在乎我是否可以这样命名列,只是想要这种格式的数据):
Name medication1 medication2 medication3
Name1 atenolol 25mg aspirin 81mg sildenafil 100mg
Name2 atenolol 50mg enalapril 20mg NA
Run Code Online (Sandbox Code Playgroud)
通过这个网站,我已经熟悉了reshape/reshape2包,并经历了多次尝试,试图让它工作,但迄今为止失败了.
当我尝试时,dcast(dataframe, Name ~ MedName, value.var='MedName')我只得到一堆列为药物名称的标志(转换的值为1或0)示例:
Name atenolol 25mg aspirin 81mg
Name1 1 1
Name2 0 0
Run Code Online (Sandbox Code Playgroud)
我在尝试dcast(dataset, Name ~ variable)融化数据集后尝试过,但这只是吐出以下内容(只计算每个人有多少药物):
Name MedName
Name1 3
name2 2
Run Code Online (Sandbox Code Playgroud)
最后,我试图融化数据,然后重塑使用idvar="Name" timevar="variable"(其中所有只是Mednames),但是这似乎不是为我的问题构建的,因为如果有多个匹配到idvar,重塑只需要第一个MedName并忽略休息.
有谁知道如何使用重塑或其他R功能这样做?我意识到可能有一种方法以更杂乱的方式执行此操作,其中一些for循环和条件基本上分割并重新粘贴数据,但我希望有一个更简单的解决方案.非常感谢!
我正在尝试使用Linux机器上安装一些R软件包
R CMD INSTALL -l <ourRlibrarylocation> <path where I saved the packagename.tar.gz file>
Run Code Online (Sandbox Code Playgroud)
我看到一条错误消息:
ERROR: a 'NAMESPACE' file is required
Run Code Online (Sandbox Code Playgroud)
我使用的是R 3.0.1.请帮助,我是R的新手,刚刚为客户下载了这些软件包.
一个例子:
R CMD INSTALL -l /abcde/R/R-3.0.0/library /home/RFILES/PKG/UScensus2000tract_0.03.tar.gz
* installing *source* package âUScensus2000tractâ ...
ERROR: a 'NAMESPACE' file is required
* removing â/abcde/R/R-3.0.0/library/UScensus2000tractâ
Run Code Online (Sandbox Code Playgroud) 注意:此问题的标题已经过编辑,使其成为plyr功能掩盖其dplyr对应项时的问题的规范问题.问题的其余部分保持不变.
假设我有以下数据:
dfx <- data.frame(
group = c(rep('A', 8), rep('B', 15), rep('C', 6)),
sex = sample(c("M", "F"), size = 29, replace = TRUE),
age = runif(n = 29, min = 18, max = 54)
)
Run Code Online (Sandbox Code Playgroud)
有了旧的,plyr我可以使用以下代码创建一个总结我的数据的小表:
require(plyr)
ddply(dfx, .(group, sex), summarize,
mean = round(mean(age), 2),
sd = round(sd(age), 2))
Run Code Online (Sandbox Code Playgroud)
输出看起来像这样:
group sex mean sd
1 A F 49.68 5.68
2 A M 32.21 6.27
3 B F 31.87 9.80
4 B M 37.54 …Run Code Online (Sandbox Code Playgroud) 我已经看到,一些功能调用C代码被描述为primitive,internal,builtin,或special.这些功能是什么?
假设我有一个R脚本:
library('nnet')
something <- runif(50);
print(something)
Run Code Online (Sandbox Code Playgroud)
当我从命令行运行此脚本时,它会打印:
> library('nnet')
> something <- runif(5);
> print(something)
[1] 0.04665518 0.93574275 0.96387299 0.07410239 0.92834019
Run Code Online (Sandbox Code Playgroud)
我希望它只打印:
[1] 0.04665518 0.93574275 0.96387299 0.07410239 0.92834019
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何做到这一点.sink("/ dev/null")没有做任何事情,手动重定向stderr没有做任何事情,我找不到任何有用的信息.
有时R会抛出我的错误
if(ncol(x)!= 2){:参数的长度为零时出错
没有其他信息,当我没有写这样的代码.有没有一种通用的方法来查找哪个包导致错误的功能?
由于大多数软件包都是压缩的,因此grep并非易事/usr/lib/R/library.
r ×10
r-faq ×10
combinations ×1
date ×1
dplyr ×1
inheritance ×1
multiset ×1
namespaces ×1
permutation ×1
plyr ×1
reshape ×1
transpose ×1