假设我有两个data.table:
A:
A B
1: 1 12
2: 2 13
3: 3 14
4: 4 15
Run Code Online (Sandbox Code Playgroud)
B:
A B
1: 2 13
2: 3 14
Run Code Online (Sandbox Code Playgroud)
我有以下代码:
merge_test = merge(dataA, dataB, by="A", all.data=TRUE)
Run Code Online (Sandbox Code Playgroud)
我明白了:
A B.x B.y
1: 2 13 13
2: 3 14 14
Run Code Online (Sandbox Code Playgroud)
但是,我想在最终合并表中的dataA中的所有行.有没有办法做到这一点?
我正在尝试将矢量列表(本质上是一个多维数组)转换为数据帧,但每次尝试我都会得到意想不到的结果.
我的目标是实例化一个空白列表,在for循环中填充它,其中包含有关循环迭代的信息的向量,然后在完成后将其转换为数据帧.
> vectorList <- list()
> for(i in 1:5){
+ vectorList[[i]] <- c("number" = i, "square root" = sqrt(i))
+ }
> vectorList
Run Code Online (Sandbox Code Playgroud)
输出:
> [[1]]
> number square root
> 1 1
>
> [[2]]
> number square root
> 2.000000 1.414214
>
> [[3]]
> number square root
> 3.000000 1.732051
>
> [[4]]
> number square root
> 4 2
>
> [[5]]
> number square root
> 5.000000 2.236068
Run Code Online (Sandbox Code Playgroud)
现在我希望这成为一个包含2个变量的5个观测值的数据框,但是试图从'vectorList'创建一个数据框
numbers <- data.frame(vectorList)
Run Code Online (Sandbox Code Playgroud)
结果是5个变量的2个观察结果.
奇怪的是它甚至不会被重塑(我知道这将是一个糟糕的工作,但我尝试过). …
如何在test.day之前找到每个(,)对的最后一个值?loc.xloc.y
dt <- data.table(
loc.x = as.integer(c(1, 1, 3, 1, 3, 1)),
loc.y = as.integer(c(1, 2, 1, 2, 1, 2)),
time = as.IDate(c("2015-03-11", "2015-05-10", "2015-09-27",
"2015-11-25", "2014-09-13", "2015-08-19")),
value = letters[1:6]
)
setkey(dt, loc.x, loc.y, time)
test.day <- as.IDate("2015-10-01")
Run Code Online (Sandbox Code Playgroud)
所需输出:
loc.x loc.y value
1: 1 1 a
2: 1 2 f
3: 3 1 c
Run Code Online (Sandbox Code Playgroud) 假设我有这样的数据集:
dat <- data.frame
text = c(
"It made me feel very positive to brand X",
"It was clear and easy to understand",
"I didn't like it al all"),
value=runif(3)
)
Run Code Online (Sandbox Code Playgroud)
我可以使用包装中的TradeGothic LT CondEighteen字体在ggplot中绘制它extrafonts:
library(ggplot2)
p <- ggplot(dat, aes(text, value)) +
geom_bar(stat="identity") +
coord_flip() +
labs(title=" Do you agree with the following statements?")+
theme_bw(16)+
theme(text=element_text(family="TradeGothic LT CondEighteen"))
ggsave('plot.pdf', plot = plot, path = "/Users/jacobdeecurtis/Desktop")
Run Code Online (Sandbox Code Playgroud)
但是当我ggplot_gtable在剧情中使用时:
gt <- ggplot_gtable(ggplot_build(plot))
gt$layout[which(gt$layout$name == "title"), c("l", "r")] <- …Run Code Online (Sandbox Code Playgroud) 有什么方法可以在使用coord_fixed()?更改形状时删除ggplot2图周围的空白区域?我希望将上方和下方的空白区域裁剪掉,以便仅保留绘图区域和轴标签.我在没有保存的情况下在R markdown文件中渲染绘图输出.
p <- ggplot(mtcars, aes(mpg, wt)) + geom_point()
p + coord_fixed(ratio = 1)
Run Code Online (Sandbox Code Playgroud)
下面的代码生成以下图表:
我有一个输入框,每当用户键入他的名字时,输出应类似于“ hai mr.X,你好吗?” 其中X是输入。仅应在首次输入后出现,并且名称应从X更改为之后的基于输入的任何值。
我ui.R和server.R代码如下:
用户界面
library(shiny)
shinyUI(fluidPage(
titlePanel("Employee Assesment"),
sidebarLayout(
sidebarPanel(
textInput("name","Enter your name","")),
mainPanel(("About this"),
textOutput("name")
)
)
))
Run Code Online (Sandbox Code Playgroud)
服务器
library(shiny)
shinyServer(function(input, output) {
output$name <- renderText({input$name})
})
Run Code Online (Sandbox Code Playgroud) 如果我想放大整个x域(时间轴)内的特定时间范围,我在绘制时间序列数据时遇到问题.有关上下文,请参阅以下代码:
date_time <- as.factor(c('8/24/07 17:30','8/24/07 18:00','8/24/07 18:30',
'8/24/07 19:00','8/24/07 19:30','8/24/07 20:00',
'8/24/07 20:30','8/24/07 21:00','8/24/07 21:30',
'8/24/07 22:00','8/24/07 22:30','8/24/07 23:00',
'8/24/07 23:30','8/25/07 00:00','8/25/07 00:30'))
U. <- as.factor(c('0.2355','0.2602','0.2039','0.2571','0.1419','0.0778','0.3557',
'0.3065','0.1559','0.0943','0.1519','0.1498','0.1574','0.1929','0.1407'))
dts<-strptime(as.character(date_time),'%m/%d/%y %H:%M')
plot(dts,as.numeric(U.),xlim=c('2007-08-24 17:30:00','2007-08-24 19:00:00'))
Run Code Online (Sandbox Code Playgroud)
我的问题:为什么xlim不能在这种情况下工作以及如何解决它?请帮忙.
注意:忽略as.factor并且as.numeric,我添加这些以模仿实际数据,一旦我将其导入R
我想计算cumsum一下每次运行信号的值signal == 1.
示例数据:
set.seed(123)
df <- data.frame(Date = seq.Date(as.Date('2016-09-01'),as.Date('2016-09-30'),by = 'days'),
value = sample(1:10,size=30,replace = TRUE),
signal = c(rep(0,3),rep(1,2),rep(0,1),rep(1,5),rep(0,6),rep(1,3),rep(0,5),rep(1,5)))
> head(df,12)
Date value signal
1 2016-09-01 10 0
2 2016-09-02 10 0
3 2016-09-03 7 0
4 2016-09-04 8 1
5 2016-09-05 1 1
6 2016-09-06 5 0
7 2016-09-07 8 1
8 2016-09-08 3 1
9 2016-09-09 4 1
10 2016-09-10 3 1
11 2016-09-11 2 1
12 2016-09-12 5 0
Run Code Online (Sandbox Code Playgroud)
到目前为止我做了什么:
我的解决方案正在运行,但我认为使用dplyr …
我有大量文件(~1200),每个文件都包含一个大的时间序列,其中包含有关地下水高度的数据。每个文件的系列的开始日期和长度都不同。日期之间可能存在较大的数据间隔,例如(此类文件的一小部分):
Date Height (cm)
14-1-1980 7659
28-1-1980 7632
14-2-1980 7661
14-3-1980 7638
28-3-1980 7642
14-4-1980 7652
25-4-1980 7646
14-5-1980 7635
29-5-1980 7622
13-6-1980 7606
27-6-1980 7598
14-7-1980 7654
28-7-1980 7654
14-8-1980 7627
28-8-1980 7600
12-9-1980 7617
14-10-1980 7596
28-10-1980 7601
14-11-1980 7592
28-11-1980 7614
11-12-1980 7650
29-12-1980 7670
14-1-1981 7698
28-1-1981 7700
13-2-1981 7694
17-3-1981 7740
30-3-1981 7683
14-4-1981 7692
14-5-1981 7682
15-6-1981 7696
17-7-1981 7706
28-7-1981 7699
28-8-1981 7686
30-9-1981 7678
17-11-1981 7723
11-12-1981 7803
18-2-1982 7757
16-3-1982 7773 …Run Code Online (Sandbox Code Playgroud) 我有以下包含名为列的数据框列表 cyl
# Create 3 dataframes with identical column names
mt_list <- list(head(mtcars[, 1:2]), tail(mtcars[, 1:2]), mtcars[13:18, 1:2])
mt_list
#> [[1]]
#> mpg cyl
#> Mazda RX4 21.0 6
#> Mazda RX4 Wag 21.0 6
#> Datsun 710 22.8 4
#> Hornet 4 Drive 21.4 6
#> Hornet Sportabout 18.7 8
#> Valiant 18.1 6
#>
#> [[2]]
#> mpg cyl
#> Porsche 914-2 26.0 4
#> Lotus Europa 30.4 4
#> Ford Pantera L 15.8 8
#> Ferrari Dino …Run Code Online (Sandbox Code Playgroud)