我想上传一个csv文件并处理该文件中的数据.这样做的最佳方法是什么?我不喜欢使用PHP脚本.我做了以下步骤.但是这个方法只返回文件名而不是文件路径.所以我没有得到所需的输出.
<form id='importPfForm'>
<input type='file' name='datafile' size='20'>
<input type='button' value='IMPORT' onclick='importPortfolioFunction()'/>
</form>
function importPortfolioFunction( arg ) {
var f = document.getElementById( 'importPfForm' );
var fileName= f.datafile.value;
}
Run Code Online (Sandbox Code Playgroud)
那么如何才能获得该文件中的数据?
我有3个autocompletetextview
,我把它的适配器设置为ArrayAdapter<String>
一个非常简单的textview
布局.
的autocompletextview
提示的结果是示出,但是屏幕上键盘下(我可以看到它的一部分).我怎样才能使结果显示在上方autocompletetextview
而不是下方?
airline = (AutoCompleteTextView)findViewById(R.id.airline);
airline.setAdapter(new ArrayAdapter<String>(this, R.layout.autcomplete_dropdown, AIRLINES_AUTOCOMPLETE_ARRAY));
departLocation = (AutoCompleteTextView)findViewById(R.id.departLocation);
departLocation.setAdapter(new ArrayAdapter<String>(this, R.layout.autcomplete_dropdown, LOCATIONS_AUTOCOMPLETE_ARRAY));
arriveLocation = (AutoCompleteTextView)findViewById(R.id.arriveLocation);
arriveLocation.setAdapter(new ArrayAdapter<String>(this, R.layout.autcomplete_dropdown, LOCATIONS_AUTOCOMPLETE_ARRAY));
Run Code Online (Sandbox Code Playgroud) 我有2个数据框 df1
和df2
.
df1 <- data.frame(c1=c("a","b","c","d"),c2=c(1,2,3,4) )
df2 <- data.frame(c1=c("c","d","e","f"),c2=c(3,4,5,6) )
> df1
c1 c2
1 a 1
2 b 2
3 c 3
4 d 4
> df2
c1 c2
1 c 3
2 d 4
3 e 5
4 f 6
Run Code Online (Sandbox Code Playgroud)
我需要执行这两个数据帧的设置操作.我使用merge(df1,df2,all=TRUE)
和merge(df1,df2,all=FALSE)
方法来获得这些数据帧的并集和交集,并获得所需的输出.获取这些数据帧减去的函数是什么,即一个数据帧中存在的所有位置,而不是另一个数据帧中的所有位置?我需要以下输出.
c1 c2
1 a 1
2 b 2
Run Code Online (Sandbox Code Playgroud) 我有一个csv文件,我使用以下函数读取:
csvData <- read.csv(file="pf.csv", colClasses=c(NA, NA,"NULL",NA,"NULL",NA,"NULL","NULL","NULL"))
dimnames(csvData)[[2]]<- c("portfolio", "date", "ticker", "quantity")
Run Code Online (Sandbox Code Playgroud)
它读取该文件中的所有行.但我想从阅读中跳过一些行.如果ticker
-column的值为:ABT
或,则不应读取该行ADCT
.可能吗?
我的csv文件示例如下:
RUS1000,01/29/1999,21st Centy Ins Group,TW.Z,90130N10,72096,1527.534,0.01,21.188
RUS1000,01/29/1999,3com Corp,COMS,88553510,358764,16861.908,0.16,47.000
RUS1000,01/29/1999,3m Co,MMM,88579Y10,401346,31154.482,0.29,77.625
RUS1000,01/29/1999,A D C Telecommunicat,ADCT,00088630,135114,5379.226,0.05,39.813
RUS1000,01/29/1999,Abbott Labs,ABT,00282410,1517621,70474.523,0.66,46.438
RUS1000,02/26/1999,21st Centy Ins Group,TW.Z,90130N10,72096,1378.836,0.01,19.125
RUS1000,02/26/1999,3com Corp,COMS,88553510,358764,11278.644,0.11,31.438
RUS1000,02/26/1999,3m Co,MMM,88579Y10,402146,29783.938,0.29,74.063
Run Code Online (Sandbox Code Playgroud) 我希望得到a startDate
和之间的日期顺序endDate
加1个月startDate
.即,如果startDate
是2013-01-31并且endDate
是2013-07-31,我希望看到这样的日期:
"2013-01-31""2013-02-28""2013-03-31""2013-04-30""2013-05-31""2013-06-30""2013-07-31"
我试过了 seq.Date(as.Date("2013-01-31"),by="month",length.out=7)
.但是这段代码的输出是这样的
> seq.Date(as.Date("2013-01-31"),by="month",length.out=7)
[1] "2013-01-31" "2013-03-03" "2013-03-31" "2013-05-01" "2013-05-31" "2013-07-01" "2013-07-31"
Run Code Online (Sandbox Code Playgroud)
那么,获得正确输出的最简单的解决方案是什么?
在R functon中,我用作fileName
参数来读取和处理该文件中存在的csv数据.我使用rook
包来集成R和javascript.在javascript中,我使用以下代码来获取导入文件的文件名.
<form id='importPfForm'>
<input type='file' name='datafile' size='20'>
<input type='button' value='IMPORT' onclick='importPortfolioFunction()'/>
</form>
function importPortfolioFunction( arg ) {
var f = document.getElementById( 'importPfForm' );
var fileName= f.datafile.value;
$.ajax( {
type : "POST",
url : 'http://localhost:'+portNo+'/custom/Ralgotree/hBasedFileImport?fileName='+fileName,
dataType : "json",
data : '{ "method" : "hBasedFileImport", "clientId": "31d0c653-d7e5-44b6-98b5-8c084f99514a", "version": 0 }',
xhrFields: {
withCredentials: false
},
beforeSend : function(xhr) {},
success : function(data, textStatus, xmLHttpRequest){
},
error : function(xhr, ajaxOptions, thrownError) {
}
});
}
Run Code Online (Sandbox Code Playgroud)
因为这个方法只传递文件名而不是完整的文件路径,所以我不会在R中得到输出.所以我需要做什么修改来获得准确的输出.我使用以下R代码:
s <- …
Run Code Online (Sandbox Code Playgroud) 我想阅读我的es索引中的所有文档.所以我使用以下功能:
public List<Map<String, Object>> getAllDocs(){
System.out.println(indexName+typeName);
SearchResponse response = client.prepareSearch(indexName)
.setTypes(typeName)
.setQuery(QueryBuilders.matchAllQuery())
.execute()
.actionGet();
for(SearchHit hit : response.getHits()){
//System.out.println("id:"+hit.getId()+" row:"+hit.getSource());
esData.add(hit.getSource());
}
return esData;
}
Run Code Online (Sandbox Code Playgroud)
但是这个函数只返回10个文件.如果我再添加一个参数, .setSize(100)
那么它将返回100个文档.如何在没有.setSize(100)参数的情况下获取索引中的所有文档?
我有一个包含大量值的数据框.数据帧如下
> datedPf
date ticker quantity
96828 2013-01-11 ABT 700
96829 2013-01-11 AMD 9600
96830 2013-01-11 AMG 600
96831 2013-01-11 AGCO 800
96832 2013-01-11 A 1300
etc...
Run Code Online (Sandbox Code Playgroud)
"自动收报机"和"数量"列的类型是factor
.我发现这个使用class(datedPf$ticker)
和class(datedPf$quantity)
分别.但是"日期"列的类型是date
.我想将该类型更改为factor
.我怎么能改变这个?
在R中,我有2个数据帧都具有不同的列名.我想根据列号组合每个数据帧的行.我拥有的数据帧如下
> d1
X.0.52..V2 X.0.52..V4
1 ABT 700
2 AMD 9600
3 AMG 600
4 AGCO 800
> d2
X.52.96..V2 X.52.96..V4
1 COMS 162193
2 MMM 419645
3 SE 146343
4 ADCT 62609
5 TCC 6623
Run Code Online (Sandbox Code Playgroud)
我想要以下数据帧:
>d3
ticker value
1 ABT 700
2 AMD 9600
3 AMG 600
4 AGCO 800
5 COMS 162193
6 MMM 419645
7 SE 146343
8 ADCT 62609
9 TCC 6623
Run Code Online (Sandbox Code Playgroud)
我需要使用的代码是什么?
在R中,我使用以下函数,该函数在该函数中使用3或4个数据库操作.但是错误消息显示如下:
Error in sqliteExecStatement(conn, statement, ...) :
RS-DBI driver: (RS_SQLite_exec: could not execute1: database is locked)
Run Code Online (Sandbox Code Playgroud)
我需要在代码中进行哪些修改?我的代码如下:
library('RSQLite')
test <- function(portfolio,date,frame){
lite <- dbDriver("SQLite", max.con = 25)
db <- dbConnect(lite, dbname = "portfolioInfo1.db")
sql <- paste("SELECT * from ", portfolio," where portDate='", date, "' ", sep = "")
res <- dbSendQuery(db, sql)
data <- fetch(res)
frame1 <- data.frame(portDate=date,frame)
lite <- dbDriver("SQLite", max.con = 25)
db <- dbConnect(lite, dbname = "portfolioInfo1.db")
sql <- paste("delete from ", portfolio," where portDate='", date, "' …
Run Code Online (Sandbox Code Playgroud)