0

これが理解しにくい場合は申し訳ありません - 写真を追加するのに十分なカルマがないので、これを説明するために最善を尽くします! R 内で XLConnect パッケージを使用して、Excel スプレッドシートを読み書きします。

私は、多くのワークブックからデータの列を取り出し、それらがどのワークブックから来たかに基づいて新しいワークブックの行に連結しようとしているプロジェクトに取り組んでいます (各ワークブックは、連続した営業日からのデータです)。問題は、私が探しているデータが各ワークブック/ワークシートのごく一部 (10 行 X 3 列) にすぎず、最初に作成した人の代わりにずさんであるために、ワークシート内の同じ場所に常に配置されているとは限らないことです。スプレッドシート。(たとえば、セル A2 から開始することはできません。あるワークブックで A2 から開始するデータセットが、別のブックでは B12 または C3 から開始する可能性があるためです)。

その内容に基づいてセルを検索することが可能かどうか疑問に思っています (たとえば、「Arb Price の表」というタイトルを含むセル)、そのセルにアクセスできるようにインデックスまたは参照式のいずれかを返します。

また、そのセルの内容に基づいてそのセルを参照すると、その式を調整して、別のセルがそのセルと比較されていることがわかっている場所に到達する方法があるかどうかも疑問です。たとえば、既知の内容を持つセルが、データの収集を開始したいセルの 2 行上、3 列左に常に配置されている場合、その最初の参照式を取得して、それを 2 行 3 ずつインクリメントすることは可能ですか?列を使用して、必要なセルの参照式を取得しますか?

助けてくれてありがとう。私の質問を理解するためにさらに情報が必要な場合は、私に知らせてください!

4

1 に答える 1

0

ワークシート全体を次のようなマトリックスとして読み取ることができます

library(XLConnect)
demoExcelFile <- system.file("demoFiles/mtcars.xlsx", package = "XLConnect")
mm <- as.matrix(readWorksheetFromFile(demoExcelFile, sheet=1))
class(mm)<-"character" # convert all to character

次に、値を検索して行/列を取得できます

 which(mm=="3.435", arr.ind=T)

#      row col
# [1,]  23   6

次に、それらをオフセットして、好きなようにマトリックスから値を抽出できます。最後に、どこから読み取りたいかがわかったら、次の方法でよりクリーンなデータ フレームに変換できます。

read.table(text=apply(mm[25:27, 6:8],1,paste, collapse="\t"), sep="\t")

うまくいけば、それがあなたが試すことができる何かの一般的な考えをあなたに与えるでしょう. 入力データがどのように見えるかを正確に知らずに、より具体的にすることは困難です。

于 2014-06-12T00:25:34.027 に答える