我有一个我在线下载的.csv
文件:
financials.morningstar.com/ajax/exportKR2CSV.html?&t=AAPL
我正在尝试编辑电子表格,以便列名称是日期,行名称是其中提供的各种比率和索引。下面是我的代码,但列名和行名都不起作用。有什么建议吗?
read.csv('/path_to_csv.csv',header=F)[-c(1:2),-c(12)]->spreadsheet
spreadsheet_body<-spreadsheet[-1,-1]
colnames(spreadsheet_body)<-spreadsheet[1,-1]
rownames(spreadsheet_body)<-c()
rownames(spreadsheet_body)<-spreadsheet[-1,1]
答案 0 :(得分:2)
这并不能解决所有问题,但您可以按部分尝试rownames
:
read.csv("http://financials.morningstar.com/ajax/exportKR2CSV.html?&t=AAPL",header=T,stringsAsFactors = F,skip = 2)[,-c(12)]->spreadsheet
#str(spreadsheet)
View(spreadsheet)
答案 1 :(得分:2)
您没有提供具体信息。当我运行你的代码时,我得到了
duplicate 'row.names' are not allowed
In addition: Warning message:
non-unique values when setting 'row.names': ‘’, ‘10-Year Average’, ‘3-Year Average’, ‘
我怀疑这是因为3年平均等名称出现在很多部分。
这是一种可能的方法(仅针对三个部分),这些方法很繁琐,但可以使后续处理更容易。
financials <- read.table('Downloads/AAPL Key Ratios.csv',sep=",",quote = '"', skip=3, nrow=15,
col.names=c('item', 'Y2006M09', 'Y2007M09', 'Y2008M09', 'Y2009M09', 'Y2010M09',
'Y2011M09', 'Y2012M09', 'Y2013M09', 'Y2014M09', 'Y2015M09', 'TTM'))
margins <- read.table('Downloads/AAPL Key Ratios.csv',sep=",",quote = '"', skip=21, nrow=9,
col.names=c('item', 'Y2006M09', 'Y2007M09', 'Y2008M09', 'Y2009M09', 'Y2010M09',
'Y2011M09', 'Y2012M09', 'Y2013M09', 'Y2014M09', 'Y2015M09', 'TTM'))
revenue_percent <- read.table('Downloads/AAPL Key Ratios.csv',sep=",",quote = '"', skip=44, nrow=4,
col.names=c('item', 'Y2006M09', 'Y2007M09', 'Y2008M09', 'Y2009M09', 'Y2010M09',
'Y2011M09', 'Y2012M09', 'Y2013M09', 'Y2014M09', 'Y2015M09', 'TTM'))
答案 2 :(得分:2)
考虑简单地使用t()转置数据框,然后替换第一行的标头。下面使用URL中的AAPL csv文件:
# Period Revenue USD Mil Gross Margin % Operating Income USD Mil
# 1 Y2006M09 19315 29.0 2453
# 2 Y2007M09 24006 34.0 4409
# 3 Y2008M09 32479 34.3 6275
# 4 Y2009M09 42905 40.1 11740
# 5 Y2010M09 65225 39.4 18385
# 6 Y2011M09 108249 40.5 33790
# 7 Y2012M09 156508 43.9 55241
# 8 Y2013M09 170910 37.6 48999
# 9 Y2014M09 182795 38.6 52503
# 10 Y2015M09 233715 40.1 71230
# 11 TTM 227535 39.8 66864
# Operating Margin % Net Income USD Mil Earnings Per Share USD
# 1 12.7 1989 0.32
# 2 18.4 3496 0.56
# 3 19.3 4834 0.77
# 4 27.4 8235 1.30
# 5 28.2 14013 2.16
# 6 31.2 25922 3.95
# 7 35.3 41733 6.31
# 8 28.7 37037 5.68
# 9 28.7 39510 6.45
# 10 30.5 53394 9.22
# 11 29.4 50678 8.97
<强>输出强>
class Body extends React.Component {
render() {
var value = this.props.value;