我(Windows 7用户)会感激,如果有人可以给出一个简单的解释或指导我学习R环境变量和相关概念的良好资源,以便我可以通过R控制台或Rprofile.site处理它们.当我试图追加不同的库搜索路径时,我很难理解这个概念.help(library)就上面所述的我所寻求的内容来说,这个命令也不是那么清楚.
我试图在网上搜索包括stackoverflow但是无法摆脱困惑.
非常感谢你.
我有一个这样的数据框:
Site speciescode abundance times
LM1 MkI 9 3
LM2 KiU 8 4
Run Code Online (Sandbox Code Playgroud)
我想根据times值重复行.我正在考虑使用循环来生成新的数据帧,如下所示:
Site speciescode abundance
LM1 MkI 9
LM1 MkI 9
LM1 MkI 9
LM2 KiU 8
LM2 KiU 8
LM2 KiU 8
LM2 KiU 8
Run Code Online (Sandbox Code Playgroud)
救命.
我试图运行以下代码.坦率地说我只知道C++很少,但我希望运行以下函数.你能帮助我运行这个愚蠢的例子吗?
cppFunction(
'NumericVector abc(int x, int x_end, NumericVector y)
{
NumericVector z;
int x1 = x + x_end;
z = y[x:x1];
return(z);
}'
)
abc(3,c(0,1,10,100,1000,10000))
Run Code Online (Sandbox Code Playgroud)
我明白了......
错误:在':'标记之前预期']'
更新
对不起,我忘了提,我需要从生成数字的序列x来x1.该功能IntegerVector::create只与只创建一个变量x而x1不是x虽然x1.我给出的例子是微不足道的.我现在更新了这个例子.我需要在C++中做什么seq()在R中
解决方案基于以下答案(@SleuthEye)
Rcpp::cppFunction(
'NumericVector abc(int x, int x_end, NumericVector y)
{
NumericVector z;
Range idx(x,x_end);
z = y[idx];
return(z);
}'
)
abc(3,5,c(0,1,10,100,1000,10000))
[1] 100 1000 10000
Run Code Online (Sandbox Code Playgroud) Windows复制\R不接受的路径.所以,我想编写一个将'\'转换为'/'的函数.例如:
chartr0 <- function(foo) chartr('\','\\/',foo)
Run Code Online (Sandbox Code Playgroud)
然后使用chartr0...
source(chartr0('E:\RStuff\test.r'))
Run Code Online (Sandbox Code Playgroud)
但是chartr0没有用.我猜,我无法逃脱'/'.我想逃避/在许多其他场合可能很重要.
另外,在R中是否存在这样的方式,我不必chartr0每次都使用,而是通过在R中创建一个environemnt来自动转换所有路径,它调用chartr0或使用某种临时用法,如使用options
我试图通过使用as.characterR中的函数将整数转换为字符串.但是我需要字符串总是长度为3.因此7将转换为007,10转入010等等.我想知道是否有一些简单的修改as.character(或任何其他内置的R例程)将很快完成此任务.
我在Win7下使用Rstudio.knitr有没有办法自动逃脱角色?请参阅下面的简单示例:
\documentclass[a4]{article}
\title{Example}
\author{Stat-R}
\begin{document}
\maketitle
<<nothing,echo=FALSE>>=
my_name <- 'hari'
my_number <- 100
df1 <- data.frame(my_name,my_number)
df1
# names(df1)
@
\section{Testing only}
Now I will print the columnnames of my data frame df1
$\Sexpr{names(df1)}$
\end{document}
Run Code Online (Sandbox Code Playgroud)
我得到以下输出...

但我想要以下内容

我必须在我的tex文件中将所有'_'更改为'_'.有没有办法在sweave文件中直接执行它.我将不胜感激任何有关这方面的建议......
我试图从给定的数据帧中采样数据帧,以便从变量的每个级别获得足够的样本.这可以通过将数据帧与每个级别和样本分开来实现.我认为ddply(数据帧到数据帧)会为我做.举一个最小的例子:
set.seed(1)
data1 <-data.frame(a=sample(c('B0','B1','B2'),100,replace=TRUE),b=rnorm(100),c=runif(100))
> summary(data1$a)
B0 B1 B2
30 32 38
Run Code Online (Sandbox Code Playgroud)
以下命令执行采样...
当我进入...
data2 <- ddply(data1,c('a'),function(x) sample(x,20,replace=FALSE))
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
Error in `[.data.frame`(x, .Internal(sample(length(x), size, replace, :
cannot take a sample larger than the population when 'replace = FALSE'
Run Code Online (Sandbox Code Playgroud)
此错误是因为函数x内部ddply不是向量而是数据帧.
有没有人知道如何实现这种抽样?我知道一种方法是不使用ddply而只是做(1)隔离,(2)采样,和(3)三步校对.但我想知道必须通过某种方式...基地或plyr功能......
谢谢您的帮助...
data_active 是任何数据集.
理想情况下,当条件满足时,必须更改值.但是当我执行此代码时,它会将每个指定列中的值更改为if语句中给出的值.
for (i in 1:nrow(data_active))
{
if(data_active[i,1]==4866)
{
data_active$St="MH"
data_active$Reg="South Central"
data_active$REGION="South"
data_active$Market="86"
}
}
Run Code Online (Sandbox Code Playgroud) 我们已经看到许多关于如何在将因子转换为数字(例如this和this )时保存小数位的问题。但我没有看到任何对字符数据而不是因子数据执行相同操作的内容。以下是我尝试过但没有成功的方法:
f1 <- c("402313.01399128098", "402896.30908451998", "403165.63827027398", "403169.06116369402", "402891.96329268801", "402239.74412469601",
"402271.54950727499", "402313.01399128098")
as.numeric(as.character(f1)) # does not work
f2 <- as.factor(f1)
as.numeric(as.character(f2)) # my decimals are GONE
f3 <- levels(f2)
as.numeric(f3) # my decimals are gone again
Run Code Online (Sandbox Code Playgroud)
我明白了
[1] 402239.7 402271.5 402313.0 402892.0 402896.3 403165.6 403169.1
Run Code Online (Sandbox Code Playgroud)
没有丢失小数位。但我不知道为什么它没有显示。和options(digits = 15)可以看到所有的小数。
教训options():你可以在决定问这样的问题之前就跑。
我不知道我是否通过标题解释了我的意图,但实质上我想转换
mean sd
v1 -32.72 0.565
v2 -50.47 1.543
v3 -30.17 0.9295
v4 -38.56 0.4541
g1 5.649 0.02509
g2 1.672 0.02992
g3 3.139 0.03507
g4 7.169 0.06703
y1 271.1 3.48
y2 123.7 1.81
y3 138.9 2.727
y4 405.5 4.396
Run Code Online (Sandbox Code Playgroud)
至
v.mean v.sd g.mean g.sd y.mean y.sd
-32.72 0.565 5.649 0.02509 271.1 3.48
-50.47 1.543 1.672 0.02992 123.7 1.81
-30.17 0.9295 3.139 0.03507 138.9 2.727
-38.56 0.4541 7.169 0.06703 405.5 4.396
Run Code Online (Sandbox Code Playgroud)
我想这样做而不使用for循环.我觉得有一些reshape功能可以做到这一点.我有大量具有此配置的数据集.所以,我想要一些矢量化解决方案......而且,长度可以是任何东西.这里,在样本数据中,系列长度为4.另外,我对列名称并不挑剔.我可以实现使用names(dataframe)=c(....