我有一个csv文件,当我使用此命令
SOLK<-read.table('Book1.csv',header=TRUE,sep=';')
Run Code Online (Sandbox Code Playgroud)
我得到了这个输出
> SOLK
Time Close Volume
1 10:27:03,6 0,99 1000
2 10:32:58,4 0,98 100
3 10:34:16,9 0,98 600
4 10:35:46,0 0,97 500
5 10:35:50,6 0,96 50
6 10:35:50,6 0,96 1000
7 10:36:10,3 0,95 40
8 10:36:10,3 0,95 100
9 10:36:10,4 0,95 500
10 10:36:10,4 0,95 100
. . . .
. . . .
. . . .
285 17:09:44,0 0,96 404
Run Code Online (Sandbox Code Playgroud)
该str(SOLK)结果这
'data.frame': 285 obs. of 3 variables:
$ Time : Factor w/ 174 levels …Run Code Online (Sandbox Code Playgroud) 因子手册的这一页讨论了存储在continuation中的这些类型的堆栈:
这些堆栈究竟拥有什么?对我来说最令人困惑的三个是callstack,retainstack和namestack.
我希望保留引用作为因子中元组的成员.但是当我尝试对它执行'call'时,我得到错误'无法将调用应用于运行时计算值'.请注意,将函数标记为"内联"不会执行任何操作.
示例代码:
USING: accessors kernel ;
IN: stackoverflow
TUPLE: quottuple quot ;
C: <quottuple> quottuple
: call-quot ( quottuple -- result )
quot>> call ; inline
: main ( -- )
[ 1 ] <quottuple>
call-quot drop ;
MAIN: main
Run Code Online (Sandbox Code Playgroud) 我正在重组一个物种名称的数据集.它有一个带有拉丁名称的列和具有普通名称的列(如果可用).我想制作第3列,在可用时给出琐碎的名称,否则为拉丁名称.琐碎的名字和拉丁名字都属于因子级.我试过if-loop:
if(art2$trivname==""){
art2$artname=trivname
}else{
art2$artname=latname
}
Run Code Online (Sandbox Code Playgroud)
它给了我正确的trivnames,但只在提供拉丁名字时给出了NA.
当我使用ifelse时,我只会得到数字.
一如既往,所有帮助赞赏:)
这是我的虚拟数据集:
dataset<-data.frame(a=c(1,2,3,4),b=c('a','b','c','d'), c=c("HI","DD","gg","ff"))
g=list(c("a","b"),c(2,3,4), c(44,33,11,22),c("chr","ID","i","II"))
dataset$l<-g
dataset
a b c l
1 1 a HI a, b
2 2 b DD 2, 3, 4
3 3 c gg 44, 33, 11, 22
4 4 d ff chr, ID, i, II
> mode(dataset$l)
[1] "list"
Run Code Online (Sandbox Code Playgroud)
当我尝试将数据集写入文件时:
> write.table(dataset, "dataset.txt", quote=F, sep="\t")
Error in write.table(x, file, nrow(x), p, rnames, sep, eol, na, dec, as.integer(quote), :
unimplemented type 'list' in 'EncodeElement'
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?
我找不到适合该问题的标题,请随时对其进行编辑。
我有这个数据
section time to from
1 a 9 1 2
2 a 9 2 1
3 a 12 2 3
4 a 12 2 4
5 a 12 3 2
6 a 12 3 4
7 a 12 4 2
8 a 12 4 3
Run Code Online (Sandbox Code Playgroud)
我想删除具有相同to且from同时的重复行,而不计算2列的排列:例如(1,2)和(2,1)是重复的。
因此最终输出将是:
section time to from
1 a 9 1 2
3 a 12 2 3
4 a 12 2 4
6 a 12 3 4
Run Code Online (Sandbox Code Playgroud)
我有一个通过构造一个新的列键的解决方案,例如
key <- paste(min(to,from),max(to,from)) …Run Code Online (Sandbox Code Playgroud) 我有一个关于滚动连接的评论/问题
让 X,Y 是:
set.seed(123);
X <- data.table(x=c(1,1,1,2,2),y=c(T,T,F,F,F),t=as.POSIXct("08:00:00.000",format="%H:%M:%OS")+sample(0:999,5,TRUE)/1e3)
Y <- copy(X)
set.seed(123)
Y[,`:=`(IDX=.I,t=t+sample(c(-5:5)/1e3,5,T))]
Y <- rbindlist(list(Y, X[5,][,IDX:=6][,t:=t+0.001], X[5,][,IDX:=7][,t:=t+0.002]))
setkey(X,x,y,t)
setkey(Y,x,y,t)
Run Code Online (Sandbox Code Playgroud)
这里X并按Y以下顺序排序x,y,t
R) X
x y t
1: 1 FALSE 2013-06-20 08:00:00.407
2: 1 TRUE 2013-06-20 08:00:00.286
3: 1 TRUE 2013-06-20 08:00:00.788
4: 2 FALSE 2013-06-20 08:00:00.882
5: 2 FALSE 2013-06-20 08:00:00.940
R) Y
x y t IDX
1: 1 FALSE 2013-06-20 08:00:00.407 3
2: 1 TRUE 2013-06-20 08:00:00.284 1
3: 1 TRUE 2013-06-20 08:00:00.791 2 …Run Code Online (Sandbox Code Playgroud) 我在 x 轴上有因子,并以使用 ggplot 直观绘制的方式对这些因子水平进行排序。效果很好。但是,当我在 ggplot 中使用 subset 命令时,它会重新排序我的原始因子序列。是否可以在 ggplot 中进行子集化并保留因子水平的顺序?
这是数据和代码:
library(ggplot2)
library(plyr)
dat <- structure(list(SubjectID = structure(c(12L, 4L, 6L, 7L, 12L,
7L, 5L, 8L, 14L, 1L, 15L, 1L, 7L, 1L, 7L, 5L, 4L, 2L, 9L, 6L,
7L, 13L, 12L, 2L, 15L, 3L, 5L, 13L, 13L, 10L, 7L, 8L, 10L, 10L,
1L, 10L, 12L, 7L, 6L, 10L), .Label = c("s001", "s002", "s003",
"s004", "s005", "s006", "s007", "s008", "s009", "s010", "s011",
"s012", "s013", "s014", "s015"), class = "factor"), Parameter = …Run Code Online (Sandbox Code Playgroud) 我有一个关于 R 中样本函数的简单问题。我从长度为 5 的输入向量中随机采样 0 和 1,并将它们相加,该向量指定要运行的试验次数并设置种子以生成可再现的随机数数字。种子按预期工作,但根据我在概率语句中输入的内容,我得到不同的随机数矩阵。在这种情况下,我假设 prob=NULL 应该与 prob=c(0.5,0.5) 相同。为什么不是呢?
vn<-c(12, 44, 9, 17, 28)
> do.call(cbind, lapply(c(1:10),function(X) {set.seed(X); sapply(vn, function(Y) sum(sample(x=c(0,1),size=Y,replace=T)), simplify=TRUE)}))
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 6 7 7 6 6 9 3 6 2 5
[2,] 22 21 20 29 22 24 24 19 25 19
[3,] 4 8 3 5 4 4 4 6 4 2
[4,] 8 4 12 9 11 7 9 10 8 8
[5,] …Run Code Online (Sandbox Code Playgroud) 调用时diag<-,只要不指定,就可以传递矩阵的一部分并获得正确的行为drop=FALSE.
> X <- matrix(0, 3, 3)
> diag(X[-1,]) <- c(1,2)
> X
[,1] [,2] [,3]
[1,] 0 0 0
[2,] 1 0 0
[3,] 0 2 0
Run Code Online (Sandbox Code Playgroud)
指定drop=false是一个不同的故事
> diag(X[-1,,drop=FALSE]) <- c(3,4)
Error in diag(X[-1, , drop = FALSE]) <- c(3, 4) :
incorrect number of subscripts
Run Code Online (Sandbox Code Playgroud)
注意:
> identical(X[-1,], X[-1,,drop=FALSE])
[1] TRUE
Run Code Online (Sandbox Code Playgroud)
正如MrFlick所指出的,当drop参数导致相同的错误时,赋值给切片:
X[1,] <- 1
X[1,,drop=TRUE] <- 2
Error in X[1, , drop = TRUE] <- 2 : incorrect …Run Code Online (Sandbox Code Playgroud) r ×8
r-factor ×3
dataframe ×2
factor-lang ×2
data.table ×1
duplicates ×1
ggplot2 ×1
if-statement ×1
numeric ×1
probability ×1
sample ×1
subset ×1