我不确定我是否在这里犯了错误(eval(parse(...))也许是使用的危险),但在这里我试图eval(parse(...))在更新data.table列时使用,这会产生错误.以下是我的代码.
require(data.table)
# Loading required package: data.table
# data.table 1.9.2 For help type: help("data.table")
DT<-data.table(x=seq(1,10,1),
y=seq(2,20,2))
DT[,y:=y*eval(parse(text="1*2"))] #Doesn't work
# Error in y * expression(1 * 2) : non-numeric argument to binary operator
variable <- eval(parse(text="1*2"))
DT[,y:=y*variable] #Works
DT
# x y
# 1: 1 4
# 2: 2 8
# 3: 3 12
# 4: 4 16
# 5: 5 20
# 6: 6 24
# 7: 7 28
# 8: 8 32 …Run Code Online (Sandbox Code Playgroud) 我有一个看起来像这样的data.table
> dput(DT)
A B C A B C D
1: 1 2 3 3 5 6 7
2: 2 1 3 2 1 3 4
Run Code Online (Sandbox Code Playgroud)
这是输入
DT <- structure(list(A = 1:2, B = c(2L, 1L), C = c(3L, 3L), A = c(3L,
2L), B = c(5L, 1L), C = c(6L, 3L), D = c(7L, 4L)), .Names = c("A",
"B", "C", "A", "B", "C", "D"), row.names = c(NA, -2L), class = c("data.table",
"data.frame"))
Run Code Online (Sandbox Code Playgroud)
基本上,我想根据标题对它们进行子集化.所以对于标题"B",我会这样做:
subset(DT,,grep(unique(names(DT))[2],names(DT)))
B B
1: 2 2 …Run Code Online (Sandbox Code Playgroud) 假设有3个数据表:
dt1<-data.table(Type=c("a","b"),x=1:2)
dt2<-data.table(Type=c("a","b"),y=3:4)
dt3<-data.table(Type=c("c","d"),z=3:4)
Run Code Online (Sandbox Code Playgroud)
我想将它们合并到1个数据表中,所以我这样做:
dt4<-merge(dt1,dt2,by="Type") # No error, produces what I want
dt5<-merge(dt4,dt3,by="Type") # Produces empty data.table (0 rows) of 4 cols: Type,x,y,z
Run Code Online (Sandbox Code Playgroud)
有没有办法让dt5代替这样?:
> dt5
Type x y z
1: a 1 3 NA
2: b 2 4 NA
3: c NA NA 3
4: d NA NA 4
Run Code Online (Sandbox Code Playgroud) 我是本指南的新vim用户,以自动使vim缩进python代码并标记不必要的空格:https ://realpython.com/blog/python/vim-and-python-a-match-made-in-heaven/# vim扩展
我在.py文件上启动vim时遇到的问题是: Error detected while processing BufRead Auto commands for "*.py":
E28: No such highlight group name: BadWhitespace
我将此错误注释掉以下几行:
" Flag unnecessary whitespace
au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /\s\+$/ <- this line
" UTF8 Support
set encoding=utf-8
" Proper PEP8 Identation
au BufNewFile,BufRead *.py
\ set tabstop=4
" \ set softtabstop=4 <-- this line
\ set shiftwidth=4
\ set textwidth=79
\ set expandtab
\ set autoindent
\ set fileformat=unix
Run Code Online (Sandbox Code Playgroud)
如何解决此错误?这是我完整的.vimrc文件:
set nocompatible " required
filetype off " …Run Code Online (Sandbox Code Playgroud) 我有许多通常采用格式的file.[i]数据帧,但偶尔会丢失数据帧:
file.1 file.2 file.3 file.4 file.5 file.6 file.7 file.9 file.11 file.13
Run Code Online (Sandbox Code Playgroud)
我试图做的是这样的:
dt <- do.call(rbind.fill,
lapply(paste("file.", 1:length(filenames), sep=""), get))
Run Code Online (Sandbox Code Playgroud)
我得到:
Error in FUN(c("file.1", "file.2", "file.3", "file.4", "file.5", "file.6", :
object 'file.8' not found
Run Code Online (Sandbox Code Playgroud)
有没有办法rbind.fill忽略丢失的数据帧?
我想知道我如何rbindlist具有不同列数的数据表,并用像rbind.fill这样的NA填充空行
DT1 <- data.table(A = 1:3)
DT2 <- data.table(A =4:5, B = letters[4:5])
l <- list(DT1, DT2)
rbindlist(l)
# Error in rbindlist(l) :
# Item 2 has 2 columns, inconsistent with item 1 which has 1 columns
Run Code Online (Sandbox Code Playgroud)
我想得到的是
A B
1: 1 NA
2: 2 NA
3: 3 NA
4: 4 d
5: 5 e
Run Code Online (Sandbox Code Playgroud) 我有以下代码来选择输入和输出文件夹的目录.
require(gWidgets2RGtk2)
input=NULL
win = gwindow("Stage 1")
g = ggroup(horizontal=FALSE,cont=win)
g1=ggroup(cont=g)
svalue(input)<-gbutton("Input folder",cont=g1,expand=TRUE,handler=function(...) {
input=gfile(type="selectdir")
gmessage(paste0("Input directory set to ",input))
input
})
g2=ggroup(cont=g)
gbutton("Ouput folder",cont=g2,expand=TRUE,handler=function(...) {
output=gfile(type="selectdir")
gmessage(paste0("Output directory set to ",output))
})
Run Code Online (Sandbox Code Playgroud)
但是,在运行时,代码不会返回输入和输出文件夹目录.谁能告诉我这里我做错了什么?
我目前正在使用ggplot2绘制一个条形图,其中填充的级别太多.结果,我无法判断一个栏结束而另一个开始.
这是我现在正在做的样本数据代码.
variable<-c("X1","X1","X1","X1","X1","X1","X1","X1","X1","X2","X2","X2","X2","X2","X2","X2","X2","X2","X3","X3","X3","X3","X3","X3","X3","X3","X3")
Length.1<-c(4.24,0.81,0.81,NA,NA,NA,NA,NA,NA,4.24,0.81,0.81,NA,NA,NA,NA,NA,NA,4.24,0.72,0.72,0.16,NA,NA,NA,NA,NA)
data<-data.frame(variable=as.factor(variable),value=as.factor(1:length(variable)),Length.1=Length.1)
## Plots a stacked bar chat in ggplot2 with text labels. Credit to MYaseen208
library(ggplot2)
p <- qplot(variable, Length.1, data = data, geom = "bar", fill = value, theme_set(theme_bw()))
p + geom_text(aes(label = Length.1), size = 3, hjust = 0.5, vjust = 3, position = "stack")
Run Code Online (Sandbox Code Playgroud)
目前,情节看起来很好.然而,在我的实际数据集中,length(data$value)要高得多,我无法清楚地看到不同条形图之间的差异.因此,我希望将条形图的颜色更改为白色,并在每个条形图周围绘制黑色边框.有谁知道我怎么做到这一点?
我正在尝试更正我的数据表,因此我的列具有相同的单位.这是我所拥有的一个例子.
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) 我有一个数据框,我不能reshape2 ::融化.任何人都可以帮我看看为什么?
> dput(x2)
structure(list(`26492` = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, …Run Code Online (Sandbox Code Playgroud) 当我尝试对data.table进行子集时,我正在丢失数据.
这是从中编写文件的.csv
Timestamp,Date,Time,SN,A.Ms.Amp,A.Ms.Vol,A.Ms.Watt,Pac
2013-10-01 12:00:00,2013-10-01,12:00:00,2110000001,23.04,465.43,10723,13544.5
2013-10-01 12:00:00,2013-10-01,12:00:00,2110000002,7.81,474.16,3704,6860
2013-10-01 12:00:00,2013-10-01,12:00:00,2110000003,6.97,484.19,3374,6661
2013-10-01 12:05:00,2013-10-01,12:05:00,2110000001,23.19,467.05,10830,13576
2013-10-01 12:05:00,2013-10-01,12:05:00,2110000002,8.4,462.52,3883.5,7366.5
2013-10-01 12:05:00,2013-10-01,12:05:00,2110000003,7.72,470.6,3631,7169
2013-10-01 12:10:00,2013-10-01,12:10:00,2110000001,23.98,470.29,11278.5,14127.5
2013-10-01 12:10:00,2013-10-01,12:10:00,2110000002,8.62,458.47,3952,7475.5
2013-10-01 12:10:00,2013-10-01,12:10:00,2110000003,7.9,462.62,3654,7182.33
2013-10-01 12:15:00,2013-10-01,12:15:00,2110000001,24.27,467.37,11342,14193
2013-10-01 12:15:00,2013-10-01,12:15:00,2110000002,8.61,458.96,3949,7502
2013-10-01 12:15:00,2013-10-01,12:15:00,2110000003,8.13,458.31,3725,7338
2013-10-01 12:20:00,2013-10-01,12:20:00,2110000001,22.3,461.71,10279.5,12735.5
2013-10-01 12:20:00,2013-10-01,12:20:00,2110000002,8.51,461.87,3929,7553.5
2013-10-01 12:20:00,2013-10-01,12:20:00,2110000003,7.83,462.19,3618.5,7331.5
Run Code Online (Sandbox Code Playgroud)
这是我运行的代码:
library(data.table)
a<-fread("complete1.csv")
a[,`:=`(Timestamp=ymd_hms(Timestamp),
Date=ymd(Date),
SN=as.factor(SN))]
a[SN==c("2110000001","2110000002"),c("Timestamp","Date","Time","SN","A.Ms.Watt","Pac"),with=FALSE]
Run Code Online (Sandbox Code Playgroud)
我得到这个输出:
> a[SN==c("2110000001","2110000002"),c("Timestamp","Date","Time","SN","A.Ms.Watt","Pac"),with=FALSE]
Timestamp Date Time SN A.Ms.Watt Pac
1: 2013-10-01 12:00:00 2013-10-01 12:00:00 2110000001 10723.0 13544.5
2: 2013-10-01 12:00:00 2013-10-01 12:00:00 2110000002 3704.0 6860.0
3: 2013-10-01 12:10:00 2013-10-01 12:10:00 2110000001 11278.5 14127.5
4: 2013-10-01 12:10:00 2013-10-01 12:10:00 2110000002 3952.0 …Run Code Online (Sandbox Code Playgroud) 遵循Vim 突出显示日晒配色方案,我尝试了这个
" Default color scheme
syntax enable
set background=dark
colorscheme solarized
autocmd ColorScheme * highlight RedundantSpaces ctermbg=red
match RedundantSpaces /\s\+$/
Run Code Online (Sandbox Code Playgroud)
但是我仍然无法让我的空格出现。这是我的 .vimrc:
set nocompatible " required
filetype off " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')
" let Vundle manage Vundle, required
Plugin 'gmarik/Vundle.vim'
Plugin 'tmhedberg/SimpylFold'
Plugin 'Vimjas/vim-python-pep8-indent'
Plugin 'vim-syntastic/syntastic'
Plugin 'nvie/vim-flake8'
Plugin 'jeffkreeftmeijer/vim-numbertoggle'
Plugin 'altercation/vim-colors-solarized'
" …Run Code Online (Sandbox Code Playgroud) 根据标题.我看到某些人宣称指针为char* s,而其他人则将其声明为char *s.我也看到有些人在做,s = (char*) malloc(5)而不是做*s = malloc(5).那之间有什么区别吗?抱歉,如果重复这个问题,我理解指针的概念,但很难理解用于表示C中指针的语法.