« 2017年3月 | トップページ | 2017年5月 »

2017年4月28日 (金)

[R]データフレームを縦方向に連結する

同じデータフレームを縦方向に連結する方法(一方のデータフレームに行を追加するイメージ)。rbind関数を使えばよい。以下、例。

> (x <- data.frame(a = 1:3, b = c("A", "B", "C")))
  a b
1 1 A
2 2 B
3 3 C
> (y <- data.frame(a = 5:6, b = c("D", "E")))
  a b
1 5 D
2 6 E
> rbind(x, y)
  a b
1 1 A
2 2 B
3 3 C
4 5 D
5 6 E

当然、連結するそれぞれのデータフレームの桁の名前や型がそろっていなければならない。

2017年4月27日 (木)

[Access VBA]サブフォーム(帳票フォーム)のレコードすべての値を一括で変更する

サブフォームを使用しているフォームで、サブフォーム(帳票フォーム)に表示されているレコードについて、何かの値を一括で変更する方法はない。そのような場合は、先頭レコードから最終レコードまで順番に変更する必要がある。

以下に、先頭レコードから最終レコードまで順番に処理をする例を示す。帳票フォームで各レコードに「数値」というテキストボックスがあり、そのテキストをすべて「A」にする。

Private Sub 一括処理_Click()
    DoCmd.GoToRecord , , acFirst
    Do While Me.CurrentRecord <= Me.Recordset.RecordCount
        Me.数値 = "A"
        DoCmd.GoToRecord , , acNext
    Loop
End Sub

これを例えば、サブフォームのヘッダーに配置したボタンが押された時に、このサブルーチンが動作するように設定すればよい。

2017年4月26日 (水)

[R]パス付きファイル名(フルパス)を示す文字列からパスだけ取り出す。

「C:\Windows\System32\winver.exe」のようなパス付きファイル名(フルパス)の文字列から、パスのみ(この例では「C:\Windows\System32」)を取り出す方法。

gsub関数を使用して正規表現による置換を行えばよい。以下、「C:\Windows\System32\winver.exe」を使用した例。なお、参考までに「C:/Windows/System32/winver.exe」を使用した例も示す。

> pathfile1 <- "C:\\Windows\\System32\\winver.exe"
> pathfile2 <- "C:/Windows/System32/winver.exe"
> gsub("\\\\[^\\]+$", "", pathfile1)
[1] "C:\\Windows\\System32"
> gsub("/[^/]+$", "", pathfile2)
[1] "C:/Windows/System32"

Rに限らず正規表現において記号¥は特殊な文字として扱われるため、文字定数として扱う場合には2文字続けて表記する必要があるので注意(¥と扱うには¥¥としなければならない)。なお、3行目のgsub関数内では特殊扱いが2重で発生しているため、¥を4つ並べる必要があり、そのようにしている箇所がある。

ウィンドウズではフォルダーの区切りを示す文字として¥(円記号)が使用されるが、リナックスでは/(スラッシュ記号)が使用される。Rではフォルダーの区切り記号としてどちらも問題なく使えるので、特殊扱いによる煩雑さを避けるために、フォルダーの区切り記号には¥ではなく/を使用したほうがよい。

2017年4月19日 (水)

[Access VBA]数値の計算時(特に割り算)に小数点以下の数値がおかしくなる

その計算を行っているテーブルのフィールドのデータ型が数値型である場合は、その数値型のフィールドサイズを確認する。

テーブルを新規作成時、データ型に数値を指定すると、初期状態(デフォルト)ではフィールドサイズ(ここでは数値の種類)は長整数型になる。つまり、整数しか扱えない。「倍精度浮動小数点型」にすること。

« 2017年3月 | トップページ | 2017年5月 »

無料ブログはココログ

■■

■■■