กลยุทธ์สำหรับการแก้ไขไฟล์ค่าที่คั่นด้วยเครื่องหมายจุลภาค (CSV)


18

เมื่อฉันทำงานกับโครงการวิเคราะห์ข้อมูลฉันมักจะเก็บข้อมูลไว้ในไฟล์ข้อมูลด้วยเครื่องหมายจุลภาคหรือคั่นด้วยแท็บ (CSV, TSV) ในขณะที่ข้อมูลมักอยู่ในระบบการจัดการฐานข้อมูลเฉพาะ สำหรับแอปพลิเคชันของฉันมากมายนี่จะเป็นการทำสิ่งที่เกินความจำเป็น

ฉันสามารถแก้ไขไฟล์ CSV และ TSV ใน Excel (หรือโปรแกรมสเปรดชีตอื่นน่าจะเป็น) สิ่งนี้มีประโยชน์:

  • สเปรดชีตทำให้ง่ายต่อการป้อนข้อมูล

นอกจากนี้ยังมีปัญหาหลายประการ:

  • การทำงานกับไฟล์ CSV และ TSV นำไปสู่ข้อความเตือนที่หลากหลายเกี่ยวกับคุณลักษณะที่สูญหายและวิธีการบันทึกเฉพาะแผ่นงานที่ใช้งานและอื่น ๆ ดังนั้นจึงเป็นเรื่องน่ารำคาญหากคุณต้องการเปิดไฟล์และทำการเปลี่ยนแปลงเล็กน้อย
  • เป็นการแปลงที่ "ฉลาดพอสมควร" หลายอย่าง ตัวอย่างเช่นหากคุณป้อน 12/3 จะคิดว่าคุณต้องการป้อนวันที่ UPDATE:ฉันควรจะกล่าวว่าตัวอย่างวันที่เป็นเพียงหนึ่งในหลายตัวอย่าง ปัญหาส่วนใหญ่ดูเหมือนจะเกี่ยวข้องกับการแปลงที่ไม่เหมาะสม โดยเฉพาะอย่างยิ่งฟิลด์ข้อความที่มีลักษณะเหมือนตัวเลขหรือวันที่ทำให้เกิดปัญหา

หรือฉันสามารถทำงานโดยตรงกับไฟล์ข้อความในเท็กซ์เอดิเตอร์มาตรฐาน สิ่งนี้ทำให้มั่นใจได้ว่าสิ่งที่ฉันป้อนคือสิ่งที่บันทึกไว้ อย่างไรก็ตามเป็นวิธีที่ไม่สะดวกในการป้อนข้อมูล (คอลัมน์ไม่เรียงกันเป็นเรื่องยากที่จะป้อนข้อมูลลงในเซลล์หลาย ๆ เซลล์ ฯลฯ )

คำถาม

  • กลยุทธ์ที่ดีในการทำงานกับไฟล์ข้อมูล CSV หรือ TSV คืออะไร เช่นกลยุทธ์ใดที่ทำให้การป้อนและจัดการข้อมูลเป็นเรื่องง่ายในขณะเดียวกันก็มั่นใจได้ว่าสิ่งที่คุณป้อนนั้นตีความได้อย่างถูกต้องจริงหรือไม่

1
การทำงานแบบไหนที่คุณทำกับไฟล์ ในใจของฉันมันมีผลต่อช่วงของตัวเลือกที่ยอมรับได้อย่างมาก นอกจากนี้ฉันยังเห็นว่าคุณสามารถแก้ไขข้อมูล TSV ในโปรแกรมประมวลผลคำและแท็บรายการเพื่อรักษาคอลัมน์ได้ตราบใดที่โปรแกรมประมวลผลคำของคุณสามารถตั้งค่าให้ไม่แปลง "สมาร์ท" และสามารถบันทึกเป็นข้อความธรรมดาได้ .
Wayne

@ Wayne จุดดี เนื่องจากฉันโตขึ้นด้วยโปรแกรมสเปรดชีตมีทางลัดมากมายที่ฉันคุ้นเคย (ฟังก์ชั่นคัดลอกและวางเพิ่มคอลัมน์พิเศษและอีกมากมาย) หมายเหตุฉันไม่ได้พูดถึงที่นี่เกี่ยวกับการวิเคราะห์ข้อมูล แต่เพียงสร้างไฟล์ข้อมูลแบบตารางอย่างง่าย (เช่นข้อมูลเมตาบางอย่างที่จำเป็นสำหรับการประมวลผลรหัส R) ในขณะที่ฉันสามารถจัดการตารางพื้นฐานเหล่านี้ทั้งหมดใน R มันไม่ง่ายนักสำหรับฉัน อาจใช้เวลานานเปิด csv ใน R การเปลี่ยนแปลงเล็กน้อยและการบันทึกอีกครั้งจะกลายเป็นตัวเลือกที่ฉันต้องการ
Jeromy Anglim

คำตอบ:


14
  1. หากคุณพอใจกับ R คุณสามารถสร้าง data.frame พื้นฐานของคุณแล้วใช้ฟังก์ชัน fix () เพื่อป้อนข้อมูล ในบรรทัดเดียวกันกับ # 5 เมื่อคุณตั้งค่า data.frame คุณสามารถใช้ชุดของ readLines (n = 1) (หรืออะไรก็ตาม) เพื่อรับข้อมูลของคุณในการตรวจสอบมันและให้โอกาสที่จะเพิ่มต่อไป แถว. จากนั้นออกจากการแก้ไขเพื่อแก้ไข () ดูตัวอย่างการใช้งานด้านล่างโดยใช้การสแกน ()

  2. ตัวเลือกอื่นใน excel จะยุ่ง แต่คุณสามารถพิมพ์ 12/9 แล้วมีคอลัมน์อื่นประเมิน = IFERROR (เดือน (DateEntryCell) / วัน (DataEntryCell), DataEntryCell) แต่คุณจะต้องรักษาแผ่นงาน excel และแผ่นงาน csv และข้อร้องเรียนทั้งหมดในขณะที่คุณเขียน csv จะยังคงอยู่

  3. หรือตราบใดที่ฟิลด์ของคุณค่อนข้างสั้นและมีความยาวที่สอดคล้องกันตัวแก้ไขข้อความทั่วไปควรให้บริการคุณได้ดีกับ TSV คุณสามารถโหลดมันได้ใน excel เมื่อคุณทำเสร็จแล้วและตรวจสอบให้แน่ใจว่าจำนวนคอลัมน์สำหรับแต่ละแถวเป็นสิ่งที่คุณคาดหวัง
  4. Emacs มีอยู่ในจำนวนของแพลตฟอร์มและอาจจะมีบางสิ่งบางเพียงแค่นี้เช่นhttp://www.emacswiki.org/emacs/CsvMode
  5. หากคุณเป็นคนที่มีจิตใจดีการเขียนโปรแกรมภาษาเร่งด่วนเพื่อทำรายการข้อมูลนั้นไม่สำคัญการแก้ไขข้อมูลจะยากขึ้นมาก
  6. การค้นหา google อย่างรวดเร็วแสดงซอฟต์แวร์ด้วยจุดประสงค์นี้ แต่ดูเหมือนว่าจะไม่มีซอฟต์แวร์ฟรีใด ๆ ที่ดี
  7. ฟังดูไม่ดี แต่มีคนใน superuser แนะนำให้แก้ไขตารางในการเข้าถึงแล้วส่งออกเป็น CSV ... นั่นมันบ้าพอที่จะทำงาน
  8. มันไม่ได้หยุด excel จากการบ่นในขณะที่คุณบันทึกเป็น. csv แต่คุณสามารถพิมพ์เครื่องหมายอัญประกาศเดี่ยวเดียวก่อนเขตข้อมูลการป้อนข้อมูลของคุณและทำให้มันทิ้งไว้คนเดียวในแง่ของการจัดรูปแบบอัตโนมัติ อย่างนี้ (อย่างน้อยใน Office 2007) จะไม่ปล่อยเครื่องหมายอัญประกาศเดี่ยวในไฟล์ csv

ปรับปรุง: ฉันได้รับการ poking รอบมากเกี่ยวกับปัญหานี้เพราะมันเป็นปัญหาที่ฉันยังมี เพื่อให้ห่างไกลที่ดีที่สุด / วิธีการแก้ปัญหาที่ง่ายที่สุดสำหรับการป้อนข้อมูลที่ผมเคยเห็นเพื่อให้ห่างไกลKillinkCSV ไม่ใช่ซอฟต์แวร์ "ฟรี" มันเป็นแชร์แวร์ที่มีระยะเวลาทดลองใช้ 30 วันและราคาสมเหตุสมผล (~ $ 27) ฉันไม่แน่ใจว่าฉันไว้ใจมากแค่ไหนในการแก้ไข CSV ที่มีอยู่ - ฉันส่ง CSV ที่มีขนาดใหญ่ (และจัดรูปแบบได้ดี) อย่างบ้าคลั่งและไม่สามารถอ่านแถวทั้งหมดได้ อย่างไรก็ตามดูเหมือนว่าจะทำงานได้ดีสำหรับไฟล์ที่มีขนาดใหญ่พอสมควร (20 MB) และปัญหาของไฟล์ขนาดใหญ่อาจเป็นข้อผิดพลาดของผู้ใช้ในส่วนของฉัน

ตัวอย่าง R:

#This function takes a what argument like in scan, 
#a list with the types to be used, see usage example 
#at the end of this code block
#dataEntry will keep reading in values until 
#the values it reads in matches what is in 
#"terminateon".
#limitations: Many
dataEntry <- function(what,terminateon)
{
  CONTINUE <- TRUE #Make sure we start the loop
  data <- NULL #Create empty data so that the data.frame can define itself
  ti <- NULL
  while(CONTINUE)
  {
    ti <- NULL    
    ti <- tryCatch(
      {as.data.frame(scan(what=what, nlines=1, multi.line=FALSE, comment.char="",quiet=TRUE))},
      error=function (e) {print("Error in data entry! Line not stored.")
                          return(NULL)},
      warning=function(w) {print("Error in data entry! Line not stored.")
                           return(NULL)},
      finally={ti <- NULL}
    ) #Try getting the data according to the parameters in 'what' one row at a time.
    if (!is.null(ti))
    {
      if ((ncol(ti)==length(what)) & (nrow(ti)==1)) {
        data <- rbind(data,ti) #If there wasn't an error, add ti to the previous value  
      } else {
        print("Too many or not enough values on previous entry.")
        print("Tail of current data:")
        print(tail(data))
      }
    }
    if (!is.null(ti) & all(ti == terminateon)) 
    {
      CONTINUE <- FALSE
      data <- data[-c(nrow(data)),]
    } #if we've recieved the final value we won't continue and the last row is invalid so we remove it
  }
  return(data)
}

dataEntry(list(x=integer(), y=numeric(), z=character()),terminateon=c(999,999,"Z"))

ใช่และปรากฎว่าฉันได้csv-mode.elติดตั้งแล้วขอบคุณemacs-goodies-elแพคเกจใน Debian / Ubuntu - เรียบร้อย
Dirk Eddelbuettel

1
+1, สำหรับจุด # 1 ซอฟต์แวร์สถิติทั้งหมดที่ฉันเคยทำงาน (นอกเหนือจาก R, Stata, SPSS และ SAS) ที่มีฟังก์ชั่นการใช้งานประเภทนี้ ดังนั้นคำแนะนำของคุณจะทำให้ซอฟต์แวร์ที่คนอื่นต้องการทำงานด้วย
Andy W

5

อัปเดต: [เคยผ่านอีเมลค้างจำนวนมากจาก R-Help] ฉันได้รับการเตือนเกี่ยวกับหัวข้อที่ " พฤติกรรมของread.csv() " ในที่นี้ Duncan Murdoch กล่าวว่าเขาชอบที่จะใช้ไฟล์Data Interchange Format (DIF)แทน csv ด้วยเหตุผลบางประการที่ Jeromy กล่าวถึง ฉันเพิ่งลองทำสิ่งนี้และ Gnumeric ทำให้มันผิด (การโหลด 12/3 เป็นวันที่) แต่ OpenOffice.org อ่านอย่างถูกต้องและรักษาข้อมูล 12/3 ไว้เหมือนเดิม (ใครสนใจที่จะตรวจสอบเรื่องนี้ใน MS Excel?)

ไฟล์ DIF เป็นข้อความธรรมดาและสามารถอ่านได้โดยสเปรดชีตและ R (ตราบใดที่คุณใช้การแก้ไข R ล่าสุด (การแก้ไข SVN> = r53778)) จะอ่านข้อมูลในรูปแบบที่ถูกต้อง


ต้นฉบับ : ฉันจะพยายามหลีกเลี่ยงการใช้สเปรดชีตแบบเต็มสำหรับการแก้ไข / จัดการข้อมูลทุกครั้งที่ทำได้ มันเป็นเรื่องยากอย่างเหลือเชื่อถ้าไม่เป็นไปไม่ได้ที่จะบันทึกการเปลี่ยนแปลงใด ๆ ที่คุณทำกับชุดข้อมูลที่มีอยู่เพื่อให้กฎค่อนข้างสวยออกมาจากมุมมองการทำซ้ำการวิจัย อย่างมากฉันใช้สเปรดชีตเพื่อดูข้อมูลที่มีอยู่อย่างรวดเร็ว

สำหรับการประมวลผลข้อมูลฉันมักจะเขียนสคริปต์ R ที่จะใช้ไฟล์ raw csv และใช้ขั้นตอนการประมวลผลที่จำเป็นทั้งหมดที่จำเป็น ฉันแสดงความคิดเห็นอย่างหนักว่าสคริปต์เพื่ออธิบายสิ่งที่ฉันทำในแต่ละขั้นตอนและสาเหตุ สคริปต์การวิเคราะห์ข้อมูลของฉันจะเรียกสคริปต์การประมวลผลข้อมูลซึ่งโหลดและประมวลผลข้อมูล

สำหรับการป้อนข้อมูลการป้อนข้อมูลในตัวแก้ไขข้อความหรือสเปรดชีตเป็นเรื่องยุ่งยากหรือไม่ ฉันสงสัยว่าปัญหาที่คุณพูดถึงในตอนหลังนั้นไม่ได้มีค่ามากกว่าการพยายามป้อนข้อมูล CSV ลงในโปรแกรมแก้ไขข้อความ

คุณสามารถลองสเปรดชีตที่ดีกว่านี้ได้ OpenOffice.org ปฏิเสธที่จะหยุดการจัดรูปแบบ 12/3 เป็นวันที่ (หรือแปลงเป็นรูปแบบตัวเลข) แม้ว่าหนึ่งในรูปแบบคอลัมน์จะเป็น "ตัวเลข" ก่อน Gnumeric ในทางกลับกันจะปล่อยให้ 12/3 เหมือนเดิมหากคุณจัดรูปแบบคอลัมน์เป็น "ตัวเลข" ก่อน

คุณสามารถบังคับให้ OpenOffice.org ไม่ทำการฟอร์แมตใหม่ 12/3 เป็นวันที่โดย'การเติมรายการให้เช่น'12/3จะแสดงเป็น 12/3 ในสเปรดชีตและบันทึกเป็นข้อความ อาจใช้งานได้ค่อนข้างปลอดภัย

ไม่แน่ใจว่าทำไมคุณถึงต้องการให้ 12/3 จัดเก็บเป็นตัวเลข 12/3 ในไฟล์ข้อความ - R ควรอ่านข้อมูลนี้อย่างไร

ความคิดเห็นของคุณเกี่ยวกับคำเตือนเกี่ยวกับการสูญเสียคุณสมบัติหรือการบันทึกเฉพาะแผ่นงานที่ใช้งานอยู่นั้นไม่ใช่ปัญหาจริงหรือ (ถ้าเป็นเช่นนั้นฉันต้องการปัญหาของคุณในชีวิตของฉัน ;-)


เกี่ยวกับการวิจัยที่ทำซ้ำได้หากรูปแบบไฟล์เป็นไฟล์ CSV ไฟล์ CSV นั้นสามารถอยู่ภายใต้การควบคุมเวอร์ชันได้อย่างง่ายดายด้วยการยอมรับเมื่อมีการเปลี่ยนแปลง สิ่งนี้จะเพียงพอสำหรับการวิจัยที่ทำซ้ำได้หรือไม่? เกี่ยวกับการป้อนข้อมูลฉันมักจะทำหรือให้ผู้อื่นทำรายการข้อมูลดิบในรูปแบบความกว้างคงที่เพื่อเพิ่มประสิทธิภาพสูงสุด แต่ฉันต้องการเก็บข้อมูลใน CSV หรือ TSV (ฉันพบว่ามันโปร่งใสมากขึ้น); เกี่ยวกับการจัดรูปแบบคอลัมน์เป็นตัวเลข ข้อมูลนี้น่าจะหายไปจากการบันทึก
Jeromy Anglim

ด้วยความเคารพ 12/3 ฉันมีตัวอย่างของการทดสอบแบบปรนัยซึ่งสิ่งนี้เป็นตัวแทนของ 12 หารด้วย 3 อย่างไรก็ตามฉันใช้มันเป็นตัวอย่างเพิ่มเติม เมื่อฉันมีไฟล์ CSV ขนาดใหญ่ฉันไม่ต้องการแม้แต่การแปลงที่ไม่เหมาะสมแม้แต่ครั้งเดียว เกี่ยวกับคำเตือนถ้าฉันเปิดไฟล์ CSV 10 ครั้งต่อวันคำเตือนจะน่าเบื่อ พวกเขาทำให้มันชัดเจนน้อยลงว่าฉันได้บันทึกไฟล์ CSV จริงหรือไม่ ขออภัยในความโวยวาย
Jeromy Anglim

@Jeromy ใช่ถ้าคุณเข้มงวดกับการเปลี่ยนแปลงครั้งเดียว (หรือขั้นตอนการประมวลผลข้อมูลเดียว) ที่คุณบันทึกและกระทำได้ทันที ฉันไม่ต้องการรวมบันทึกเกี่ยวกับการประมวลผลใน R (เนื่องจากเป็นภาษาที่ฉันต้องการ) โดยใช้สคริปต์ นั่นคือวิธีที่ฉันทำงานกับข้อมูลที่เพื่อนร่วมงานส่งมาให้ฉัน ฉันอาจดูสเปรดชีตอย่างรวดเร็วจากนั้นอ่าน csv เป็น R และเขียนสคริปต์ที่มีขั้นตอนการประมวลผลข้อมูลทั้งหมดที่ฉันต้องใช้ จากนั้นฉันก็แสดงความคิดเห็นสคริปต์นั้นดังนั้นฉันจึงมีบันทึกสิ่งที่ฉันทำและทำไมฉันถึงทำมันและฉันไม่ได้เปลี่ยนไฟล์ข้อมูลดั้งเดิมเลย
Reinstate Monica - G. Simpson

@ Jeromy: จุดยุติธรรมในคำเตือน ฉันนานแล้วตั้งแต่กรองพวกเขาออกเป็นเสียงดังนั้นพวกเขาจึงไม่รบกวนฉัน ฉันเพิ่งทดสอบ Gnumeric และ OpenOffice.org และพวกเขาแปลง csv ที่มี 12/3 เป็นวันที่โดยอัตโนมัติ - นั่นเป็นขยะ! ดังนั้นฉันเห็นสิ่งที่คุณหมายถึง วิธีเดียวที่จะหยุดการที่จะเก็บข้อมูลเหล่านั้นเป็นข้อความและบังคับให้ชนิดข้อมูลในการโหลด / นำเข้า
Reinstate Monica - G. Simpson

@Jeromy: อีกครั้ง: การจัดรูปแบบตัวเลขสูญหาย - ใช่มันจะยกเว้นคุณจะระบุประเภทคอลัมน์เป็น "ตัวเลข" (Gnumeric) หรือ "ข้อความ" ใน (OpenOffice.org) เมื่อนำเข้า ดีกว่าอาจเก็บไว้เป็นข้อความ (ดูคำตอบที่แก้ไขของฉัน) เพื่อหลีกเลี่ยงการแปลง - คุณจะต้องระบุชนิดข้อมูลเมื่อนำเข้า ...
Reinstate Monica - G. Simpson

3

ฉันขอแนะนำให้คุณดูที่ google refine (http://code.google.com/p/google-refine/) ฉันคิดว่าเป็นเครื่องมือที่ดีมากสำหรับการแก้ไขไฟล์ CSV


คุณกรุณาอธิบายว่าสิ่งนี้ตอบสนองต่อการร้องขอกลยุทธ์ในคำถามได้อย่างไร
whuber

3

ฉันจะหลีกเลี่ยงการทำงานกับไฟล์ CSV และ TSV ด้วยกัน แทนที่จะเรียนรู้ที่จะใช้ SQL และทำงานเฉพาะกับดาต้ามาร์ตหรือฐานข้อมูล (DB) คัดลอกข้อมูลของคุณหรือคุณสามารถใช้ SAS หรือ R ด้วยการเชื่อมต่อ passthru กับฐานข้อมูลของคุณ ด้วยวิธีนี้คุณสามารถทำการอัปเดตข้อมูลจำนวนมากแทนที่จะทำการค้นหาและแทนที่ที่หวั่นใน Excel (หรือโปรแกรมสเปรดชีตที่คุณใช้) หรือคัดลอกและวางซึ่งอาจเกิดข้อผิดพลาดได้ ข้อดีของการใช้ระบบ DB ก็คือคุณสามารถเปิดใช้งานการบันทึกและย้อนกลับการเปลี่ยนแปลงที่คุณทำไว้อย่างรวดเร็วหากเกิดข้อผิดพลาดและสามารถตรวจสอบการเปลี่ยนแปลงทั้งหมดได้ นอกจากนี้คุณสามารถวางข้อ จำกัด ด้านความซื่อตรงไว้ในตารางฐานข้อมูลเพื่อให้แน่ใจว่าคุณจะไม่ปรับปรุงหรือเปลี่ยนแปลงตัวแปร / คอลัมน์อย่างไม่เหมาะสมในวิธีที่คุณเห็นว่าไม่เหมาะสม (เช่นวันที่เข้าพักตามวันที่และข้อมูลอื่น ๆ ฉันชนะ'

ถ้าคุณชอบสเปรดชีตเพราะมันช่วยให้คุณป้อนข้อมูลได้ซึ่งสามารถเอาชนะได้ในทุกฐานข้อมูลที่ฉันเคยใช้โดยใช้เครื่องมืออินเทอร์เฟซผู้ใช้แบบกราฟิก / IDEs ที่มาพร้อมกับฐานข้อมูล (เช่น Microsoft's Studio Studio) หรือดึงรุ่นที่เชื่อมโยง ของฐานข้อมูลของคุณลงในระบบที่ออกแบบมาโดยเฉพาะสำหรับการป้อนข้อมูลของคุณและบังคับใช้ข้อ จำกัด ของข้อมูล (เช่นแบบฟอร์มตารางที่เชื่อมโยงใน Access หรือเว็บอินเตอร์เฟสแบบกำหนดเอง) นอกจากนี้คุณยังสามารถใช้โปรแกรมอื่น ๆ ที่จะช่วยให้คุณได้รับประโยชน์สูงสุดจากทั้งโลกและอัปเดตข้อมูลใน Excel และให้การเปลี่ยนแปลงเหล่านั้นแพร่กระจายไปยังฐานข้อมูลของคุณ (ดูhttps://www.youtube.com/watch?v=5iyuF_mDSacเป็นต้น) .


2

หลังจากที่ผมถามคำถามนี้ผมเริ่มมีลักษณะที่CSVed

จากเว็บไซต์:

CSVed เป็นตัวแก้ไขไฟล์ CSV ที่ง่ายและมีประสิทธิภาพคุณสามารถจัดการไฟล์ CSV ใด ๆ คั่นด้วยตัวคั่นใด ๆ

ฉันไม่แน่ใจว่าใครมีประสบการณ์กับมัน


ฉันลองติดตั้งแล้ว หลังจากลองใช้อย่างรวดเร็วดูเหมือนว่าขยะสำหรับการป้อนข้อมูล บางทีถ้าฉันลองอีกครั้งฉันจะสามารถหาวิธีใช้อย่างมีประสิทธิภาพได้ แต่ฉันคิดว่าไม่ได้
russellpierce

คุณกรุณาอธิบายว่าสิ่งนี้ตอบสนองต่อการร้องขอกลยุทธ์ในคำถามได้อย่างไร
whuber

2

Excel ไม่ค่อยเป็นมิตรกับ CSV ตัวอย่างเช่นหากคุณต้องป้อน "1,300" ลงใน Excel และบันทึกเป็นค่าที่คั่นด้วยเครื่องหมายจุลภาคมันจะช่วยให้คุณ! อาจเป็นปัญหาใหญ่ (ฉันพบเป็นประจำเมื่อรับไฟล์จากผู้อื่น)

ฉันใช้ OpenOffice.org Calc เป็นการส่วนตัวฉันยังใช้วิธีแก้ปัญหาต่าง ๆ ที่ระบุไว้ข้างต้น แต่ส่วนมากเหล่านี้ไม่มีฟังก์ชันการทำงานและความสะดวกในการใช้งานที่จำเป็นสำหรับการแก้ไขเป็นประจำ OOO Calc ฉลาดกว่า Excel มากแม้ว่าจะเป็นโปรแกรมสเปรดชีตคุณจะต้องป้อน "= 12/3" แทน "12/3" ไม่เช่นนั้นคุณจะป้อนค่าแทนที่จะเป็นการคำนวณ

ให้มันหมุนคุณจะไม่ผิดหวัง


1

ฉันชอบ Gnumeric เพราะมันไม่ได้พยายามที่จะงี่เง่าเท่าที่คนอื่น ๆ (มันไม่ได้ตะโกนเกี่ยวกับฟังก์ชั่นที่หายไป) และทำงานกับข้อมูลขนาดใหญ่ ... แต่ฉันคิดว่ามันเป็น Linux เท่านั้น


1
ต่อไปนี้คำถามนี้ผมล่า: มีรุ่นของ Windows projects.gnome.org/gnumeric/downloads.shtml
Jeromy Anglim

1
มันเตือนเกี่ยวกับการบันทึกเฉพาะแผ่นงานปัจจุบันเท่านั้น (ซึ่งเป็นหนึ่งในข้อผิดพลาดของ Jeromy) และมันมีคุณสมบัติที่น่ารำคาญในการแปลงตัวเลข 12/3 ที่ถูกบันทึกเป็นวันที่อย่างถูกต้องเว้นแต่คุณจะระบุด้วยตนเองว่าเป็นตัวเลขในการนำเข้า ข้อมูลภายนอก> นำเข้าไฟล์ข้อความ ... ) ไม่โหลด
Reinstate Monica - G. Simpson

คุณกรุณาอธิบายว่าสิ่งนี้ตอบสนองต่อการร้องขอกลยุทธ์ในคำถามได้อย่างไร
whuber

1

เพียงแค่ใช้แก้ไขรอน มันก็เหมือนกับ Excel โดยไม่ต้อง 'ช่วย'

จากเว็บไซต์:

Ron's Editor เป็นข้อความแบบตารางที่มีประสิทธิภาพหรือ CSV, ตัวแก้ไข มันสามารถเปิดรูปแบบของข้อความที่คั่นใด ๆ รวมถึงไฟล์ที่คั่นด้วยเครื่องหมายจุลภาคและแท็บมาตรฐาน (CSV และ TSV) และช่วยให้การควบคุมเนื้อหาและโครงสร้างทั้งหมดของพวกเขา

ไม่เพียง แต่สามารถแก้ไขไฟล์ข้อความแบบตารางเท่านั้น แต่ยังสามารถกรองและสรุปได้อย่างง่ายดายในมุมมองเพิ่มเติมตามที่ต้องการเพิ่มฟังก์ชันการวิเคราะห์ที่มีประสิทธิภาพ

  • ใบอนุญาต: ฟรีสำหรับการใช้งานส่วนตัว / การประเมินผล
  • ทำงานบน: Windows 32/64-bit 2000 / XP / 2003 / Vista /

คุณกรุณาอธิบายว่าสิ่งนี้ตอบสนองต่อการร้องขอกลยุทธ์ในคำถามได้อย่างไร
whuber

1

ฉันชอบใช้แนวคิดของ "ฐานข้อมูลเชิงสัมพันธ์" เพื่อจัดการไฟล์ CSV ไฟล์ CSV นั้นดีสำหรับการแลกเปลี่ยนข้อมูล แต่ไม่มีตรรกะทางธุรกิจ ประสบการณ์ของฉันในการทำงานกับ CSV คือ "มีการทำซ้ำหลายอย่างกับธุรกิจในการปรับแต่งการวิเคราะห์" การทำงานกับไฟล์ข้อความธรรมดาเท่านั้น (CSV) จะมีความท้าทายมากมาย ตัวอย่างเช่นไฟล์ CSV จะไม่แสดง "สิ่งที่ทำให้ข้อมูลไม่ซ้ำกัน" คืออะไร "คีย์หลักของแต่ละแถว" สิ่งนี้จะทำให้เกิดปัญหาใหญ่ในภายหลังเมื่อเรามีแหล่งข้อมูลอื่นเข้าร่วม

SQLiteเป็นเครื่องมือที่ดีในการทำให้ CSV เป็นฐานข้อมูลเชิงสัมพันธ์และคล้ายกับ CSV มันง่ายต่อการแลกเปลี่ยนและไม่จำเป็นต้องติดตั้งเซิร์ฟเวอร์ ที่สำคัญกว่านั้นรองรับซอฟต์แวร์ได้ดีมากRและมีค่าทางสถิติอื่น ๆ

กลยุทธ์ของฉันรักษา "ข้อมูลที่ถูกลบ" ในฐานข้อมูลเชิงสัมพันธ์อยู่เสมอ และทำให้ชัดเจนบนคีย์หลักของแต่ละตาราง

นี่คือตัวอย่างของสิ่งที่อาจเกิดขึ้นในคำพูดจริง (สมมติว่าเราขายหนังสือ):

  • วันที่ 1 ฉันได้รับไฟล์ CSV มีข้อมูลลูกค้าทั้งหมด
  • วันที่ 2 ฉันได้รับไฟล์ CSV อีกชุดประกอบด้วยข้อมูลผลิตภัณฑ์ (หนังสือ) ทั้งหมดด้วยเหตุผลบางอย่างธุรกิจบอกว่าไม่มี ISBN และการรวมกันของชื่อหนังสือและชื่อผู้แต่งคือคีย์หลัก
  • วันที่ 3 พบว่าหนังสือธุรกิจต้องได้รับการพิจารณาพวกเขาส่ง CSV อีกครั้งไปที่ "overwrite" CSV ของ day2
  • วันที่ 4 ธุรกิจพบข้อมูลลูกค้าสามารถอัปเดตได้ (เช่นการเปลี่ยนแปลงที่อยู่) พวกเขาส่งข้อมูลลูกค้าเวอร์ชันที่อัปเดต

ตอนนี้คุณสามารถเห็นประโยชน์ของข้อมูลที่สะอาดและเก็บไว้ในฐานข้อมูลเชิงสัมพันธ์ ด้วยรหัสประจำตัวลูกค้าพูดเป็นคีย์หลักและชื่อหนังสือผู้แต่งและรุ่นเป็นคีย์หลัก มันง่ายมากที่จะทำการอัพเดทข้อมูลและรวมการเปลี่ยนแปลงตามที่ต้องการ นอกจากนี้คีย์หลักยังให้ "ข้อ จำกัด " และ "การตรวจสุขภาพ" สำหรับข้อมูลใหม่ ๆ


0

หากคุณใช้คุณสมบัติ "นำเข้าข้อมูล" ของ Excel มันจะให้ตัวเลือกในการเลือกประเภทข้อมูลสำหรับแต่ละคอลัมน์ คุณสามารถเลือกคอลัมน์ทั้งหมดและใช้ประเภทข้อมูล "ข้อความ"


คุณกรุณาอธิบายว่าสิ่งนี้ตอบสนองต่อการร้องขอกลยุทธ์ในคำถามได้อย่างไร
whuber
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.