การจัดการสัญลักษณ์ตราสารที่ขัดแย้งหรือไม่ใช่ชื่อที่ถูกต้องใน R

การนำเข้าและจัดการข้อมูลทางการเงินใน R

Joshua Ulrich

Quantitative Analyst & quantmod Co-Author and Maintainer

ชื่อที่ถูกต้องทางไวยากรณ์

  • ชื่อที่ถูกต้องประกอบด้วยตัวอักษร ตัวเลข . และ _
  • ต้องขึ้นต้นด้วยตัวอักษร หรือ . ตามด้วยอักขระที่ไม่ใช่ตัวเลข
  • ห้ามใช้คำที่เป็นสงวนไว้
  • ชื่อที่ไม่ถูกต้อง:
    • .4times, _one, for
การนำเข้าและจัดการข้อมูลทางการเงินใน R

การเข้าถึงอ็อบเจกต์ที่มีชื่อไม่ถูกต้องทางไวยากรณ์ (1)

  • getSymbols() แปลงบางชื่อให้ถูกต้อง
    • S&P 500 Index: "^GSPC"
getSymbols("^GSPC")
"GSPC"
head(GSPC, 3)
           GSPC.Open GSPC.High GSPC.Low GSPC.Close GSPC.Volume GSPC.Adjusted
2007-01-03   1418.03   1429.42  1407.86    1416.60  3429160000       1416.60
2007-01-04   1416.60   1421.84  1408.43    1418.34  3004460000       1418.34
2007-01-05   1418.34   1418.34  1405.75    1409.71  2919400000       1409.71
การนำเข้าและจัดการข้อมูลทางการเงินใน R

การเข้าถึงอ็อบเจกต์ที่มีชื่อไม่ถูกต้องทางไวยากรณ์ (2)

  • สัญลักษณ์ ticker บางตัวไม่ใช่ชื่อที่ถูกต้อง
    • Shanghai Stock Exchange Composite Index: "000001.SS"
getSymbols("000001.SS", auto.assign = TRUE)
"000001.SS"
str(000001.SS)
Error: unexpected symbol in "str(000001.SS)"
การนำเข้าและจัดการข้อมูลทางการเงินใน R
head(`000001.SS`, n = 3)
            000001.SS.Open   000001.SS.High     000001.SS.Low
2007-01-04         2715.72          2715.72           2715.72
2007-01-05         2641.33          2641.33           2641.33
2007-01-08         2707.20          2707.20           2707.20
           000001.SS.Close 000001.SS.Volume 000001.SS.Adjusted
2007-01-04         2715.72                0            2715.72
2007-01-05         2641.33                0            2641.33
2007-01-08         2707.20                0            2707.20
head(get("000001.SS"), n = 3)
            000001.SS.Open   000001.SS.High     000001.SS.Low
2007-01-04         2715.72          2715.72           2715.72
2007-01-05         2641.33          2641.33           2641.33
2007-01-08         2707.20          2707.20           2707.20
           000001.SS.Close 000001.SS.Volume 000001.SS.Adjusted
2007-01-04         2715.72                0            2715.72
2007-01-05         2641.33                0            2641.33
2007-01-08         2707.20                0            2707.20
การนำเข้าและจัดการข้อมูลทางการเงินใน R

ชื่อที่ถูกต้องสำหรับตราสารเดียว

  • กำหนดผลลัพธ์จาก getSymbols() ให้กับชื่อที่ถูกต้อง
  • แปลงชื่อคอลัมน์ให้ถูกต้อง
sse <- getSymbols("000001.SS", auto.assign = FALSE)
colnames(sse) <- paste("SSE", 
                         c("Open", "High", "Low", "Close",    
                           "Volume", "Adjusted"), sep = ".")
head(sse, n = 2)
            SSE.Open    SSE.High     SSE.Low
2007-01-04   2715.72     2715.72     2715.72
2007-01-05   2641.33     2641.33     2641.33
           SSE.Close  SSE.Volume  SSE.Adjusted
2007-01-04   2715.72           0       2715.72
2007-01-05   2641.33           0       2641.33
การนำเข้าและจัดการข้อมูลทางการเงินใน R
  • สร้างการแมปสัญลักษณ์กับอ็อบเจกต์ R ด้วย setSymbolLookup()
setSymbolLookup(SSE = list(name = "000001.SS"),
                  FORD = list(name = "F"))

getSymbols(c("SSE", "FORD"))
"SSE"  "FORD"
head(SSE, n = 2)
               SSE.Open  SSE.High  SSE.Low  SSE.Close  SSE.Volume  SSE.Adjusted
2007-01-04      2715.72   2715.72  2715.72    2715.72           0       2715.72
2007-01-05      2641.33   2641.33  2641.33    2641.33           0       2641.33
head(FORD, n = 2)
           FORD.Open  FORD.High FORD.Low  FORD.Close  FORD.Volume  FORD.Adjusted
2007-01-03      7.56     7.67       7.44       7.51      78652200       6.150263
2007-01-04      7.56     7.72       7.43       7.70      63454900       6.305862
การนำเข้าและจัดการข้อมูลทางการเงินใน R

มาฝึกกันเถอะ!

การนำเข้าและจัดการข้อมูลทางการเงินใน R

Preparing Video For Download...