2013-07-29 3 views
2

Как изменить заголовок моей диаграммы в Excel через пакет RDCOMClient?Как изменить название диаграммы в Excel через RDCOMClient?

я могу создать диаграмму и получить его название следующим образом:

# Load package and helper functions - see http://www.omegahat.org/RDCOMClient 
require(RDCOMClient) 
source("http://www.omegahat.org/RDCOMClient/examples/excelUtils.R") 

# Create Excel application 
xls <- COMCreate("Excel.Application") 

# Make Excel workbook visible to user 
xls[["Visible"]] <- TRUE 

# Add a worksheet to the workbook 
wb = xls[["Workbooks"]]$Add(1) 

# Add data.frame to worksheet 
df <- data.frame(x=c("a", "b", "c"), Income = 4:6) 
exportDataFrame(df, at = wb$ActiveSheet()$Range("A1")) 

# Add Chart 
chart.display.range <- wb$ActiveSheet()$Range("D2:H12") 
wb$ActiveSheet()$Range("A1:B4")$Select() 
wb$ActiveSheet()$Shapes()$AddChart(Top = chart.display.range$Top(), 
            Left = chart.display.range$Left(), 
            Height = chart.display.range$Height(), 
            Width = chart.display.range$Width())$Select() 

# chart title 
wb$ActiveChart()$ChartTitle()[["Text"]] 
#[1] "Income" 

Но когда я пытаюсь, чтобы изменить имя

# Change chart title?? 
wb$ActiveChart()$ChartTitle()[["Text"]] <- "Tony's Chart" 

Я получаю сообщение об ошибке:

Error in wb$ActiveChart()$ChartTitle()[["Text"]] <- "Tony's Chart" : 
    invalid (NULL) left side of assignment 

Кажется, я часто сталкиваюсь с такой проблемой, при которой я не могу изменить значение свойства и хотел бы выяснить, как t o решить это (я знаю, что я могу изменить имя столбца data.frame, но я бы хотел получить лучшее решение, поскольку, вероятно, я пропустил что-то очень очевидное).

Заранее спасибо.

> sessionInfo() 
R version 3.0.0 (2013-04-03) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 

locale: 
[1] LC_COLLATE=English_United Kingdom.1252 LC_CTYPE=English_United Kingdom.1252 LC_MONETARY=English_United Kingdom.1252 LC_NUMERIC=C       
[5] LC_TIME=English_United Kingdom.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] excel.link_0.5.4  zoo_1.7-10   RDCOMClient_0.93-0.1 data.table_1.8.8  ggplot2_0.9.3.1  plyr_1.8    reshape2_1.2.2  countrycode_0.14  

loaded via a namespace (and not attached): 
[1] colorspace_1.2-2 dichromat_2.0-0 digest_0.6.3  grid_3.0.0   gtable_0.1.2  labeling_0.1  lattice_0.20-15 MASS_7.3-26  munsell_0.4  
[10] proto_0.3-10  RColorBrewer_1.0-5 scales_0.2.3  stringr_0.6.2  tools_3.0.0  

ответ

2

Фигурные его, введя случайные вещи в R:

x = wb$ActiveChart()$ChartTitle() 
x[["Text"]] = "Tony's Chart" 

Я удивляюсь, почему я не могу сделать это непосредственно в одну линию, как в моем вопросе, хотя?

+1

См. [Здесь] (http://www.omegahat.org/RDCOMClient/Todo.html). При написании в одной строке [[«Значение»]] оценивается и, следовательно, не может быть присвоено значение. –

+0

@arbautjc Спасибо, я раньше этого не видел, очень хорошо знаю. –

 Смежные вопросы

  • Нет связанных вопросов^_^