小编Mat*_*erg的帖子

创建两个日期之间的所有日期的向量

在R中有一个简单的方法可以逐项列出在两个指定日期之间发生的所有有效日期吗?例如,我想要以下输入:

itemizeDates(startDate="12-30-11", endDate="1-4-12")
Run Code Online (Sandbox Code Playgroud)

生成以下日期:

"12-30-11" "12-31-11", "1-1-12", "1-2-12", "1-3-12", "1-4-12"
Run Code Online (Sandbox Code Playgroud)

我对日期的类和格式很灵活,我只需要实现这个概念.

r lubridate

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

有效存储素数

对于库,我需要将第一个素数存储到极限L.此集合必须具有O(1)查找时间(以检查数字是否为素数)并且必须很容易,给定数字,找到下一个素数(假设它小于L).

鉴于L是固定的,生成清单的Eratostene筛子很好.现在,我使用一个打包的布尔数组来存储列表,该列表仅包含3到L(含)之间的奇数的条目.这需要(L-2)/ 2位内存.我希望能够在不使用更多内存的情况下静态增加L.

是否存在使用具有相似属性的较少内存的数据结构?或者至少具有恒定的查找时间?(然后可以枚举奇数,直到我们得到一个素数)

(我在其中编写的语言是因子,但这个问题在内置或易于编程的打包位数组的任何语言中都是相同的)

math primes factorization data-structures

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

按R中的星期几重新排序因子水平

我在R中有以下data.frame:

> daily
        DoW         Duration
1    Friday 14.0000000000000
2    Monday 21.0000000000000
3  Saturday 12.0000000000000
4  Thursday 28.0000000000000
5   Tuesday 12.0000000000000
6 Wednesday 91.0000000000000
7    Sunday 20.0000000000000
Run Code Online (Sandbox Code Playgroud)

我想更改因子级别的顺序,以便周数符合(美国)星期几的顺序.

看起来我可以用一种缓慢而令人费解的方式做到这一点relevel().但这只需要1个数字参数并将其移至顶部.所以,relevel(daily$DoW, 7)将星期日移到顶部,但其余的仍然是无序的(这意味着我需要以相反的顺序重新排列).

可行,但必须有更好的方法,对吧?

(时间序列解决方案也可以接受.)

r dataframe r-factor

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

R错误"总和对因素无意义"

我有一个名为rRna_RDP_taxonomy_phylum的文件,其中包含以下数据:

364  "Firmicutes"            39.31
244  "Proteobacteria"        26.35
218  "Actinobacteria"        23.54
65   "Bacteroidetes"         7.02
22   "Fusobacteria"          2.38
6    "Thermotogae"           0.65
3     unclassified_Bacteria  0.32
2    "Spirochaetes"          0.22
1    "Tenericutes"           0.11
1     Cyanobacteria          0.11
Run Code Online (Sandbox Code Playgroud)

我正在使用此代码在R中创建饼图:

if(file.exists("rRna_RDP_taxonomy_phylum")){
    family <- read.table ("rRna_RDP_taxonomy_phylum", sep="\t")
    piedat <- rbind(family[1:7, ],
                as.data.frame(t(c(sum(family[8:nrow(family),1]),
                                "Others",
                                sum(family[8:nrow(family),3])))))
    png(file="../graph/RDP_phylum_low.png", width=600, height=550, res=75)
    pie(as.numeric(piedat$V3), labels=piedat$V3, clockwise=TRUE, col=graph_col, main="More representative Phyliums")
    legend("topright", legend=piedat$V2, cex=0.8, fill=graph_col)
    dev.off()
    png(file="../graph/RDP_phylm_high.png", width=1300, height=850, res=75)
    pie(as.numeric(piedat$V3), labels=piedat$V3, clockwise=TRUE, col=graph_col, main="More representative Phyliums")
    legend("topright", legend=piedat$V2, cex=0.8, fill=graph_col)
    dev.off()
}
Run Code Online (Sandbox Code Playgroud)

我一直在使用这个代码用于不同的数据文件,它工作正常,但随着文件显示adobe它崩溃返回以下消息:

Error …
Run Code Online (Sandbox Code Playgroud)

r categorical-data r-factor

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

用gsub替换字符串中的两个点

我正在尝试使用以下代码仅替换一个两个点:

test<-"test..1"
gsub("\\..", ".", test, fixed=TRUE)
Run Code Online (Sandbox Code Playgroud)

得到:

[1] "test..1"
Run Code Online (Sandbox Code Playgroud)

我尝试了几种转义字符串组合,包括方括号[]没有成功.
我究竟做错了什么?

r

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

转置列表列表

我有一个包含列表条目的列表,我需要转置结构.原始结构是矩形,但子列表中的名称不匹配.

这是一个例子:

ax <- data.frame(a=1,x=2)
ay <- data.frame(a=3,y=4)
bw <- data.frame(b=5,w=6)
bz <- data.frame(b=7,z=8)
before <- list(  a=list(x=ax, y=ay),   b=list(w=bw, z=bz))
Run Code Online (Sandbox Code Playgroud)

我想要的是:

after  <- list(w.x=list(a=ax, b=bw), y.z=list(a=ay, b=bz))
Run Code Online (Sandbox Code Playgroud)

我不关心结果列表的名称(在任何级别).

显然,这可以明确地完成:

after <- list(x.w=list(a=before$a$x, b=before$b$w), y.z=list(a=before$a$y, b=before$b$z))
Run Code Online (Sandbox Code Playgroud)

但这很难看,只适用于2x2结构.这样做的惯用方法是什么?

r

17
推荐指数
3
解决办法
9782
查看次数

R如何将其中一个级别更改为NA

我有一个数据集,其中一个列有因子级别"a" "b" "c" "NotPerformed".如何将所有"NotPerformed"因素更改为NA?

r r-factor

15
推荐指数
3
解决办法
7252
查看次数

在R中将因子转换为日期/时间

这是我的数据框中包含的信息:

## minuteofday: factor w/ 89501 levels "2013-06-01 08:07:00",...
## dDdt: num 7.8564 2.318 ...
## minutes: POSIXlt, format: NA NA NA
Run Code Online (Sandbox Code Playgroud)

我需要将分钟列转换为日期/时间格式:

minuteave$minutes <- as.POSIXlt(as.character(minuteave$minuteofday), format="%m/%d/%Y %H:%M:%S")
Run Code Online (Sandbox Code Playgroud)

我试过了as.POSIXlt,as.POSIXct而且as.Date.这些都没有奏效.有人有想法吗.

目标是绘制分钟与dDdt的关系,但它不会让我在指定的时间段内绘制我想要的因素.我不知道接下来该尝试什么...

r date posixct posixlt r-factor

14
推荐指数
2
解决办法
7万
查看次数

合并数据帧,不同长度

我想添加变量dat2:

          concreteness familiarity typicality
amoeba            3.60        1.30       1.71
bacterium         3.82        3.48       2.13
leech             5.71        1.83       4.50
Run Code Online (Sandbox Code Playgroud)

dat1:

    ID  variable value
1    1    amoeba     0
2    2    amoeba     0
3    3    amoeba    NA
251  1 bacterium     0
252  2 bacterium     0
253  3 bacterium     0
501  1     leech     1
502  2     leech     1
503  3     leech     0
Run Code Online (Sandbox Code Playgroud)

给出以下输出:

    X ID  variable value concreteness familiarity typicality
1   1  1    amoeba     0         3.60        1.30       1.71
2   2  2    amoeba …
Run Code Online (Sandbox Code Playgroud)

merge r

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

查找两个字符变量之间的公共子串

我有两个字符变量(对象的名称),我想提取最大的公共子字符串.

a <- c('blahABCfoo', 'blahDEFfoo')
b <- c('XXABC-123', 'XXDEF-123')
Run Code Online (Sandbox Code Playgroud)

我想要以下结果:

[1] "ABC" "DEF"
Run Code Online (Sandbox Code Playgroud)

作为输入的这些向量应该给出相同的结果:

a <- c('textABCxx', 'textDEFxx')
b <- c('zzABCblah', 'zzDEFblah')
Run Code Online (Sandbox Code Playgroud)

这些例子具有代表性.字符串包含标识元素,每个向量元素中的其余文本是常见的,但未知.

是否有解决方案,在以下某个地方(按优先顺序):

  1. 基地R.

  2. 推荐套餐

  3. CRAN上提供的软件包

假设重复的答案不符合这些要求.

r lcs

12
推荐指数
2
解决办法
5859
查看次数