これは難しくて珍しい要求のようには思えませんが、何かを探すのに苦労しています。私は間違ったキーワードや何かを探しているに違いない。read.csvからbasenameを取得
infile <- read.csv(args[1], sep="\t", check.names=FALSE, row.names = 0)
を我々はargs[1]
は、ファイルパスに評価言えばと~/some/arbitrary/path/mydatafile.tsv
がどのように私は、ファイル名のベースを取得できます。私はそうのようなread.csv
または類似、とにファイルを読み込む場合はRで
、 == "mydatafile"(変数名ではありません)をRの中に入れて、出力ファイルに追加するために使うことができます。例えば、以下のように入力ファイル名に基づいて名前を付けます:
# Do some analysis on mydatafile.tsv and make myplot, then:
outfile = basename(infile) # <- this should evaluate to the basename or similar of the input file
plotly_IMAGE(myplot,
width = 1024,
height = 768,
format = "png",
username="xxx",
key="xxx",
scale = 1,
out_file = paste(outfile,"png", sep="."))
EDIT 私のクエリに対する最終的な解決は、他のスレッド(すなわち、 basename()
とtools::
ライブラリの別々の使用)、私の具体的な質問は、重複した重複と微妙に異なっていました - 別の方法(この場合はread.csv
)から直接ファイル名を引き出すオプションを探していましたが、 :)私はそれが閉鎖されるべきか、それに基づいていないと感じるならば改造機に任せます。
ベース名は、ここでは 'mydatafile'を意味しますか? – MichaelChirico
ええ、私ができるほど明確にしようとしました。すなわち入力ファイル "mydatafile.tsv"の場合、プロットの最終的な出力イメージは 'paste()'によって結合された後に "mydatafile.png"になります。 –
'gsub(" \\ .. * $ "、" "、basename("〜/ some/arbitrary/path/mydatafile.tsv "))'は "mydatafile"を返します。 – lmo