我有一个csv文件并使用提取数据
banknifty <- as.xts(read.zoo("banknifty.csv",sep=",",tz="" ,header=T))
Run Code Online (Sandbox Code Playgroud)
read.zoo()使用数值提取数据框,但在我应用时as.xts(),data. frame数字值将转换为字符.
# banknifty[1,] gives
2008-01-01 09.34:00 "10" "12" "13"
Run Code Online (Sandbox Code Playgroud)
我想要as.xts返回data.frame数值.如何避免这个问题?
我有第1列和第2列(ID和值).接下来我想要一个count列,列出每个id出现相同值的次数.如果它不止一次出现,它显然会重复该值.此数据集中还有其他变量,但新计数变量只需要有2个条件.我已经浏览了这个博客,但我找不到一种方法来使新变量以多个变量为条件.
ID Value Count
1 a 2
1 a 2
1 b 1
2 a 2
2 a 2
3 a 1
3 b 3
3 b 3
3 b 3
Run Code Online (Sandbox Code Playgroud)
先感谢您!
我需要绘制三条线(在一张图上),每条线代表一个实验室团队的数据(两个变量/团队).理想情况下,图形应该看起来美观(因此使用ggplot2!),但形式与下图所示的线图相似.我不明白如何使用gggplot2库将多行绘制到单个图形上.我目前对ggplot2库的知识/技能很低,但我在下面列出了我的初出茅庐的努力.
http://www.harding.edu/fmccown/r/#linecharts
编辑:每行由两个向量构成,如下所示:
temp = c(4, 25, 50, 85, 100)
enzyme_activity = c(0.543, 0.788, 0.990, 0.898, 0.882)
Run Code Online (Sandbox Code Playgroud)
在x轴上使用temp变量,每行使用不同的颜色,以便区分它们.
EDIT2:
amyA = c(0.091, 0.147, 0.202, 0.236, 0.074)
temp = c(4, 23, 37, 65, 100)
df = data.frame(temp, amyA)
ggplot(df, aes(x = temp, y = amyA, col = 'blue')) + geom_line()
Run Code Online (Sandbox Code Playgroud)
第二次编辑中的代码不会生成蓝线,并且图例完全错误.如果我用不同的数据重复两个ggplot调用,则只绘制一行.
我正在尝试更正我的数据表,因此我的列具有相同的单位.这是我所拥有的一个例子.
hh:mm A V W kA V kW A kV kW
11:00 13.84 470.16 6509.88 14.89 467.85 6964.38 15.74 464.01 7303.13
11:05 12.54 475.17 5959.22 13.40 474.52 6358.89 13.34 473.13 6311.80
11:10 9.73 476.20 4632.14 10.36 473.38 4905.86 10.38 472.73 4907.14
11:15 9.20 479.30 4410.89 9.65 482.79 4659.67 9.73 479.09 4659.33
11:20 11.28 482.22 5437.78 12.03 484.95 5835.33 12.24 476.36 5829.44
11:25 11.66 481.64 5614.56 12.76 479.95 6124.56 12.88 476.86 6139.33
11:30 10.38 475.13 4934.00 11.99 480.96 5760.44 11.50 478.77 …Run Code Online (Sandbox Code Playgroud) 该文档描述.Machine$double.eps为最小的正浮点数x1 + x != 1.所以我希望以下产生1:
options(digits=17)
1 + .Machine$double.eps
# [1] 1.0000000000000002
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.似乎我必须尽可能低到0.5*.Machine$double.eps达到预期的四舍五入之前.我误解了一些事情.Machine$double.eps吗?这个平台依赖吗?(下面的sessionInfo())
> sessionInfo()
R version 3.0.2 (2013-09-25)
Platform: x86_64-apple-darwin10.8.0 (64-bit)
locale:
[1] en_CA.UTF-8/en_CA.UTF-8/en_CA.UTF-8/C/en_CA.UTF-8/en_CA.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] tools_3.0.2
Run Code Online (Sandbox Code Playgroud)
谢谢
我正在接受data.table:
DT <- data.table(num=c(1,4,6,7,8,12,13, 15), let=rep(c("A","B"), each=4))
Run Code Online (Sandbox Code Playgroud)
那么我有以下结果:
> sapply(DT, class)
num let
"numeric" "character"
Run Code Online (Sandbox Code Playgroud)
哪个好.
然后,添加一行:
DT<-rbind(DT, as.list(c(8, "B")))
Run Code Online (Sandbox Code Playgroud)
然后:
> sapply(DT, class)
num let
"character" "character"
Run Code Online (Sandbox Code Playgroud)
我发现这种恶意,R将第一列类型更改为字符并且没有预料到......我之后可以将列更改为数字但是如果我必须在每次插入后检查,那就太痛苦了.
有没有办法添加没有这个缺点的线?
我正在尝试将指定目录中所有文件的数据框对象中的数据加载到单个数据表中。这就是我尝试这样做的方式: .RData
library(data.table)
fileList <- list.files("../cache/FLOSSmole", pattern="\\.RData$", full.names=TRUE)
dataset <- rbindlist(lapply(fileList, FUN=function(file) {as.data.table(load(file))}))
Run Code Online (Sandbox Code Playgroud)
但是,结果与预期不同(包含所有数据的单个数据表) - 它仅包含源文件中数据框对象的名称.RData:
> str(dataset)
Classes ‘data.table’ and 'data.frame': 39 obs. of 1 variable:
$ V1: chr "lpdOfficialBugTags" "lpdLicenses" "lpdMilestones" "lpdSeries" ...
- attr(*, ".internal.selfref")=<externalptr>
> head(dataset)
V1
1: lpdOfficialBugTags
2: lpdLicenses
3: lpdMilestones
4: lpdSeries
5: lpdProjects
6: lpdProgrammingLanguages
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?非常感谢您的帮助!
我的R环境:
> sessionInfo()
R version 3.1.0 (2014-04-10)
Platform: x86_64-pc-linux-gnu (64-bit)
locale: …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种解决方案来添加"desired_result"列,最好使用dplyr和/或ave().请参阅此处的数据框,其中组是"section",我希望我的"desired_results"列按顺序计数的唯一实例位于"exhibit"中:
structure(list(section = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L), exhibit = structure(c(1L,
2L, 3L, 3L, 1L, 2L, 2L, 3L), .Label = c("a", "b", "c"), class = "factor"),
desired_result = c(1L, 2L, 3L, 3L, 1L, 2L, 2L, 3L)), .Names = c("section",
"exhibit", "desired_result"), class = "data.frame", row.names = c(NA,
-8L))
Run Code Online (Sandbox Code Playgroud) 我真的需要你的 R 技能。已经研究这个情节好几天了。我是 R 新手,所以这可以解释它。
我有染色体的序列覆盖数据(基本上是每个染色体长度上每个位置的值,使向量的长度达到数百万)。我想为我的阅读内容制作一个很好的覆盖图。这是我到目前为止得到的:

看起来不错,但我缺少 y 标签,这样我就可以知道它是哪条染色体,而且我在修改 x 轴时也遇到了麻烦,所以它在覆盖范围结束的地方结束。此外,我自己的数据要大得多,使得这个图特别需要很长时间。这就是我尝试这个 HilbertVisplotLongVector 的原因。它有效,但我不知道如何修改它、x 轴、标签、如何记录 y 轴,以及矢量在绘图上都获得相同的长度,即使它们的长度不相等。
source("http://bioconductor.org/biocLite.R")
biocLite("HilbertVis")
library(HilbertVis)
chr1 <- abs(makeRandomTestData(len=1.3e+07))
chr2 <- abs(makeRandomTestData(len=1e+07))
par(mfcol=c(8, 1), mar=c(1, 1, 1, 1), ylog=T)
# 1st way of trying with some code I found on stackoverflow
# Chr1
plotCoverage <- function(chr1, start, end) { # Defines coverage plotting function.
plot.new()
plot.window(c(start, length(chr1)), c(0, 10))
axis(1, labels=F)
axis(4)
lines(start:end, log(chr1[start:end]), type="l")
}
plotCoverage(chr1, start=1, end=length(chr1)) # Plots coverage result.
# Chr2
plotCoverage <- …Run Code Online (Sandbox Code Playgroud) 我正在使用 ggdendrogram 来绘制树状图,但我希望将标签放在左侧以使图表更直观。我该怎么做呢?谢谢!!!
library(ggplot2)
library(ggdendro)
### Data
countries <- c("UK","AU","SA","CH")
distmatrix <- matrix(c(0.00, 0.16, 1.01, 0.97, 0.16, 0.00, 0.84, 0.79, 1.01, 0.84, 0.00, 1.49, 0.97, 0.79, 1.49, 0.00),
nrow=4,dimnames=list(countries, countries))
### Cluster
hc = hclust(as.dist(distmatrix), method = "ward")
### Plot
ggdendrogram(hc, rotate=TRUE, theme_dendro=FALSE)
Run Code Online (Sandbox Code Playgroud)