我想将data.table行转换为向量.这对我有用:
unlist(dt[row_num])
Run Code Online (Sandbox Code Playgroud)
但是有更原生的解决方案吗?我也不喜欢上面保留名称的时候我真的想要一个纯数字向量,然后导致:
as.numeric(unlist(dt[row_num]))
Run Code Online (Sandbox Code Playgroud)
似乎应该有更好的选择.
我正在寻找一种从更大的表中提取大量行的快速方法.我的表顶部如下:
> head(dbsnp)
snp gene distance
rs5 rs5 KRIT1 1
rs6 rs6 CYP51A1 1
rs7 rs7 LOC401387 1
rs8 rs8 CDK6 1
rs9 rs9 CDK6 1
rs10 rs10 CDK6 1
Run Code Online (Sandbox Code Playgroud)
尺寸:
> dim(dbsnp)
[1] 11934948 3
Run Code Online (Sandbox Code Playgroud)
我想选择列表中包含rownames的行:
> head(features)
[1] "rs1367830" "rs5915027" "rs2060113" "rs1594503" "rs1116848" "rs1835693"
> length(features)
[1] 915635
Run Code Online (Sandbox Code Playgroud)
毫不奇怪,这样做的直接方式temptable = dbsnp[features,]需要相当长的时间.
我一直在研究如何通过R中的sqldf包来实现这一点.我认为这可能会更快.不幸的是,我无法弄清楚如何在SQL中选择具有某些rownames的行.
谢谢.
我有以下数据框,我想按第五列("距离")排序.当我尝试`
df.order <- df[order(df[, 5]), ]
Run Code Online (Sandbox Code Playgroud)
我总是收到以下错误消息.
Error in order(df[, 5]) : unimplemented type 'list' in 'orderVector1'`
Run Code Online (Sandbox Code Playgroud)
我不知道为什么R将我的数据框视为列表.运行is.data.frame(df)回报TRUE.我不得不承认is.list(df)也会回来TRUE.是否可以强制我的数据框只是一个数据框而不是一个列表?谢谢你的帮助.
structure(list(ID = list(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
Latitude = list(50.7368, 50.7368, 50.7368, 50.7369, 50.7369, 50.737, 50.737, 50.7371, 50.7371, 50.7371),
Longitude = list(6.0873, 6.0873, 6.0873, 6.0872, 6.0872, 6.0872, 6.0872, 6.0872, 6.0872, 6.0872),
Elevation = list(269.26, 268.99, 268.73, 268.69, 268.14, 267.87, 267.61, 267.31, 267.21, 267.02),
Distance = list(119.4396, 119.4396, 119.4396, 121.199, …Run Code Online (Sandbox Code Playgroud) 我正在学习这个帖子。
作者声称这是一个向量
a <- c(1,2,5.3,6,-2,4) # numeric vector
Run Code Online (Sandbox Code Playgroud)
但类函数不认为它是一个向量
> class(a)
[1] "numeric"
Run Code Online (Sandbox Code Playgroud)
对于矩阵来说,一切都很顺利。
> a = matrix(1:6, nrow = 2, ncol = 3)
> class(a)
[1] "matrix"
Run Code Online (Sandbox Code Playgroud)
这是为什么?
有一个data.frame
> x
date open high low close volume adjusted
1 2010-01-04 24.52 24.58 23.68 23.71 24192200 23.71
2 2010-01-05 23.75 23.90 22.75 23.30 55649900 23.30
3 2010-01-06 23.25 23.25 22.72 22.90 41214300 22.90
4 2010-01-07 22.90 23.05 22.40 22.65 35533600 22.65
5 2010-01-08 22.50 22.75 22.35 22.60 28854300 22.60
6 2010-01-11 23.50 23.68 22.28 22.60 44284600 22.60
> is.vector(x[,1])
[1] FALSE
> is.vector(x[,2])
[1] TRUE
> is.vector(x[,1])
[1] FALSE
> is.vector(x[,3])
[1] TRUE
> is.vector(x[,4])
[1] TRUE
> is.vector(x[,5]) …Run Code Online (Sandbox Code Playgroud)