小编bar*_*nus的帖子

在 R 中查找特定月份的第一天

我目前有一列“月”和一列“DayWeek”,其中写出了一周中的月份和日期。使用下面的代码,我可以在 2 月、5 月、8 月和 11 月的每个星期三获得一个带有 1 的列。我正在努力寻找一种方法,仅在我刚刚提到的 4 个月中的每个月的第一个星期三获得一个带有 1 的列. 有什么想法还是我必须为它创建一个循环?

testPrices$Rebalance <- ifelse((testPrices$Month=="February" & testPrices$DayWeek == "Wednesday"),1,ifelse((testPrices$Month=="May" & testPrices$DayWeek == "Wednesday"),1,ifelse((testPrices$Month=="August" & testPrices$DayWeek == "Wednesday"),1,ifelse((testPrices$Month=="November" & testPrices$DayWeek == "Wednesday"),1,0))))
Run Code Online (Sandbox Code Playgroud)

if-statement r date

4
推荐指数
2
解决办法
1612
查看次数

colClasses日期和时间read.csv

我有一些形式的数据:

date,time,val1,val2
20090503,0:05:12,107.25,1
20090503,0:05:17,108.25,20
20090503,0:07:45,110.25,5
20090503,0:07:56,106.25,5
Run Code Online (Sandbox Code Playgroud)

来自csv文件.我对R比较新,所以我试过了

data <-read.csv("sample.csv", header = TRUE, sep = ",")
Run Code Online (Sandbox Code Playgroud)

和使用POSIXlt,以及POSIXctcolClasses论证中,但我似乎无法从我的日期和时间数据创建一个列或"变量".我想这样做,所以我可以选择任意时间帧来计算运行统计数据,如max,min,mean(然后是boxplots等).

我还以为我可以将它转换为时间序列并以这种方式绕过它,

dataTS <-ts(data) 
Run Code Online (Sandbox Code Playgroud)

但是我已经能够将开始,结束和频率用于我的优势.谢谢你的帮助.

r read.csv

3
推荐指数
1
解决办法
5674
查看次数

在ubuntu中安装R包

这里有一些新手.我一直在R for Windows工作,最近搬到了ubuntu,(我认为是"Hardy Heron").我也不是一个Linux家伙.无论如何.我想安装"diptest"包.我跑了命令

install.packages("diptest") 
Run Code Online (Sandbox Code Playgroud)

输出是:

将软件包安装到'/home/smart/R/i486-pc-linux-gnu-library/2.6'(因为'lib'未指定),这有点奇怪,因为我正在运行R 2.12.1.然后它挂了.

此外,如果我打电话library("diptest")说我需要重新安装包,因为它是为R 2.6构建的.重新安装的过程是不是比install.packages?谢谢.很抱歉问这么简单的问题.

r r-package

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

如何替换公式中的因变量?

假设我有一个R公式,这样:

fm <- formula(y~x1+x2+x1:x2)
Run Code Online (Sandbox Code Playgroud)

和一组新的响应的结局,y1,y2,y3.我怎么能通过循环替换y公式?fmfor

for (newy in c(y1,y2,y3)){
    newfm=formula(...)
}
Run Code Online (Sandbox Code Playgroud)

string r formula

3
推荐指数
1
解决办法
114
查看次数

计算R并保持出现的顺序

假设我使用以下语句生成了一个向量:

x1 <- rep(4:1, sample(1:100,4))
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试使用以下命令计算出现次数

count(x1)
  x freq
1 1   40
2 2   57
3 3    3
4 4   46
Run Code Online (Sandbox Code Playgroud)

要么

as.data.frame(table(x1))
  x1 Freq
1  1   40
2  2   57
3  3    3
4  4   46
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,都不会保留发生的顺序.我想保留发生的顺序,即输出应该是这样的

  x1 Freq
1  4   46
2  3    3
3  2   57
4  1   40
Run Code Online (Sandbox Code Playgroud)

最干净的方法是什么?另外,有没有办法强制执行特定订单?

aggregate r

3
推荐指数
1
解决办法
176
查看次数

read.csv()和colClasses

我正在尝试使用read.csv()命令,但我不理解colClasses运行编码的部分.有没有人解释它是什么,还给我简单编码的例子read.csv()

另外,如果我运行我的编码read.csv(),我会收到错误

> object of type 'closure' is not subsettable
Run Code Online (Sandbox Code Playgroud)

这是什么类型的错误?上次我运行我的代码,它工作,但现在我得到了这个.我不确定我应该在这做什么改变.这是我的代码:

Precipfiles[1:24] <- list.files(pattern=".csv")
> DF <- NULL
> for (f in Precipfiles[1:24]) {
    data[1:24]<-read.csv(f,header=T,sep="\t",na.string="",colClasses="character")
    DF[1:24]<-rbind(DF,data[1:24])
}
Run Code Online (Sandbox Code Playgroud)

基本上,我加载所有数据并将它们放在一起,但merge()由于我遇到上面列出的麻烦,我无法使用命令.

我想我不应该使用colClasses="character"因为我使用的数据都是200乘200矩阵的数字.我必须将24个数据文件放在一起.

如果您有任何建议并建议改进此编码,请告诉我.谢谢你的帮助.

r read.csv

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

打印数字翻转金字塔风格

我试图使用for循环打印这样的东西:

    1 
   121 
  12321 
 1234321 
123454321 
Run Code Online (Sandbox Code Playgroud)
int mid = 1;
System.out.println("    " + mid + "    ");
mid++;

for(int i = 1; i <=4; i++){

    //left spaces
    for(int x = 4; x > i; x--){
        System.out.print(" ");
    }

    //left diguts
    for(int z = 1; z <= i; z++){
        System.out.print(z);
    }

    //middle digit
    System.out.print(mid);
    mid++;

    //right diguts
    for(int b = 1; b <= i; b++){
        System.out.print(b);
    }

    //right spaces
    for(int y = 4; y > i; y--){
        System.out.print(" ");
    }

    System.out.println(); …
Run Code Online (Sandbox Code Playgroud)

java string for-loop

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

使用包stringi(正则表达式)替换部分字符串

我有一些字符串

string <- "abbccc"
Run Code Online (Sandbox Code Playgroud)

我想把同一个字母的链子替换成一个字母和这封信的出现次数.所以我想要这样的东西: "ab2c3"

我使用stringi包来做到这一点,但它并不像我想要的那样工作.假设我已经有部件的矢量用于替换:

vector <- c("b2", "c3")
stri_replace_all_regex(string, "([a-z])\\1{1,8}", vector)
Run Code Online (Sandbox Code Playgroud)

输出:

[1] "ab2b2" "ac3c3"
Run Code Online (Sandbox Code Playgroud)

我想要的输出: [1] "ab2c3"

我也试过这种方式

stri_replace_all_regex(string, "([a-z])\\1{1,8}", vector, vectorize_all=FALSE)
Run Code Online (Sandbox Code Playgroud)

但我得到错误

Error in stri_replace_all_regex(string, "([a-z])\\1{1,8}", vector, vectorize_all = FALSE) : 
  vector length not consistent with other arguments
Run Code Online (Sandbox Code Playgroud)

regex string r stringi

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

如何在r中一起绘制直方图和pdf

我想将拟合模型的 PDFgamma(lambda,k)与直方图叠加。我写的 :

hist(pressure)
curve(dgamma(x, lambda, k), add=TRUE, col="red")
Run Code Online (Sandbox Code Playgroud)

但我对“x”的值是什么感到困惑。有人帮忙吗?

plot r histogram probability-density

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

按新行符号拆分字符串

我试图在这个文件eng-pol.txt中用新的符号"\n" 分割线条而且它根本不起作用......我试过了:

String[] words = strLine.split("\n");
System.out.println(Arrays.toString(words));
[abbot    abbot [?æb?t] <N>\n opat]

String[] words = strLine.split("\\n");
System.out.println(Arrays.toString(words));
[abbot    abbot [?æb?t] <N>\n opat]

String[] words = strLine.split("\\r|\r");
System.out.println(Arrays.toString(words));
[abbot    abbot [?æb?t] <N>\n opat]
Run Code Online (Sandbox Code Playgroud)

即使这样:

String[] words = strLine.split(System.getProperty("line.separator"));
System.out.println(Arrays.toString(words));
[abbot    abbot [?æb?t] <N>\n opat]
Run Code Online (Sandbox Code Playgroud)

我正在使用BufferedReaderreadLine方法读取文件.

java string split newline

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