标签: r-faq

R:具有/不具有替换的排列和组合以及用于不同/非独特项目/多集的排列和组合

在这个主题中,我试图在这里包括所有常见问题及其答案.我希望这对某人有用.

一般问题:如何rn对象生成对象序列?

  • 组合与排列.
  • 有替换和没有替换.
  • 不同的项目与非独特的项目(多重集合).

总共存在这类2^3=8问题.

[更新]

Josh O'Brien认为这8个问题与十二种方式有关.实际上,"不同"的问题以十二种方式包含在内,而"非独特"的问题则不包括在内.无论如何,将这里的8个问题与12倍的方式进行比较是很有趣的.请参阅注释以获取进一步的读数.

combinations r permutation multiset r-faq

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

as.Date在转换'ddmmmyyyy'时返回NA

我正在尝试将字符串"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).

r date r-faq

20
推荐指数
3
解决办法
4万
查看次数

在包中寻找功能

找到包中所有相关函数的最佳方法是什么?我目前正在通过caTools包.如果我这样做?caTools或者??caTools我只是想要搜索那些被调用的函数而不是函数.有没有一种简单的方法来访问R gui中的所有功能?有没有什么好方法可以搜索功能?

r r-faq

20
推荐指数
3
解决办法
2085
查看次数

和遗传有什么区别?

如果我想检查变量是否继承自某个类,我可以使用isinherits.

class(letters)
## [1] "character"
is(letters, "character")
## [1] TRUE
inherits(letters, "character")
## [1] TRUE
Run Code Online (Sandbox Code Playgroud)

我是否应该选择使用哪一种,并且它们是否会返回不同的值?

inheritance r r-faq

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

从长到宽格式转换/重塑数据帧而不使用"timevar"

我有一个数据框,遵循以下长模式:

   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循环和条件基本上分割并重新粘贴数据,但我希望有一个更简单的解决方案.非常感谢!

transpose r reshape r-faq

18
推荐指数
6
解决办法
4980
查看次数

错误:需要"NAMESPACE"文件

我正在尝试使用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)

namespaces r r-faq

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

当我在`dplyr`之后加载`plyr`时,为什么汇总或变异不能用于group_by?

注意:此问题的标题已经过编辑,使其成为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)

r plyr r-faq dplyr

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

什么是原始,内部,内置和特殊功能?

我已经看到,一些功能调用C代码被描述为primitive,internal,builtin,或special.这些功能是什么?

r r-faq

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

每次运行时,如何避免打印R脚本?

假设我有一个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 r-faq

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

调试R中的意外错误 - 如何找到错误发生的位置?

有时R会抛出我的错误

if(ncol(x)!= 2){:参数的长度为零时出错

没有其他信息,当我没有写这样的代码.有没有一种通用的方法来查找哪个包导致错误的功能?

由于大多数软件包都是压缩的,因此grep并非易事/usr/lib/R/library.

error-handling r r-faq

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