gpt4 book ai didi

r - 将 .numbers 电子表格导入 R

转载 作者:行者123 更新时间:2023-12-04 16:49:51 26 4
gpt4 key购买 nike

是否有任何函数可以将 .numbers(Apple 的电子表格程序)文件导入 R?我可以使用 gdata 包中的 read.xls 导入 .xlsx 文件。但是使用 read.xls 不适用于 .numbers 文件。

最佳答案

没有正式的包和 @Roland 是正确的,因为您最好执行 File->Export->CSV 来获取数据。如果您只需要一张 table ——例如:

enter image description here

然后您需要可以选择单元格并使用pbpaste:

dat <- read.csv(pipe('pbpaste'), sep='\t')
dat
## A B
## 1 4 456
## 2 5 346
## 3 5 345
## 4 34 345
## 5 4 345
## 6 45 345
## 7 46 345
## 8 3456 345
## 9 678 34
## 10 568 34

但这不是可扩展的。

或者,Numbers 重新获得了 AppleScript 支持,并且它有一个 export 调用,所以——理论上——创建一个文件夹操作或命令行脚本来获取一个或多个 >.numbers 文件并将它们放入 CSV。这也可能是一种在 R 中编写薄“垫片”模块或函数的方法,它只会在幕后执行此操作(例如 read.numbers("myfile.numbers", table=1) 这然后将获取该 Numbers 工作表并将第一个表格导出到 CSV 文件,然后使用 read.csv 将其读入)。

更新

为此,这里是 (@plang)[ https://stackoverflow.com/users/1982991/plang] 来自 another SO post 的脚本修改版,它适用于最新版本的 Numbers。将它放入 read.numbers() 函数/包中并不太难,但在我的雷达上构建起来并不困难,因为它需要处理 Numbers 如何从中保存 CSV 文档的太多边缘条件包含多个表格/工作表的文档。

当前的 AppleScript Numbers 字典使得直接从脚本打开和读取表格成为可能(IMO 仍然需要使用 pbpaste hack,因为我认为没有R<->AppleScript 桥)。它可以通过 Java<->AppleScript 桥来完成,但考虑到需要直接使用 Numbers 文档的人口较少,这似乎有点过分了。

我仍然建议将脚本(如下)转换为文件夹操作,并将您需要在 R 中使用的 Numbers 文件拖到其中进行批量转换。

# - input: Numbers input file
# - output: CSV output file
#
# Attik System, Philippe Lang
#
# Orig from: https://stackoverflow.com/a/10845335/1457051
#
# Creation date: 31 mai 2012
# Modification date: 07-Apr-2014 by @hrbrmstr
# -------------------------------------------------------------------------------
on run argv
# We retreive the path of the script
set myPath to (path to me)
tell application "Finder" to set myFolder to folder of myPath

# We get the command line parameters
set input_file to item 1 of argv
set output_file to item 2 of argv

# We retreive the extension of the file
set theInfo to (info for (input_file))
set extname to name extension of (theInfo)

# Paths
set input_file_path to (myFolder as text) & input_file
set output_file_path to (myFolder as text) & output_file

log input_file_path
log output_file_path

if extname is equal to "numbers" then
tell application "Numbers"
open input_file_path
export document 1 as CSV to output_file_path
close every window saving no
end tell
end if
end run

关于r - 将 .numbers 电子表格导入 R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22915814/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com