R 中人类可读的硬编码数据帧
Human-readable hard-coding dataframe in R
假设我希望在 R 中对数据帧进行硬编码。
my_df = data.frame(list(Name=c("foo", "bar", "baz", "qux"),
Result=c("Hello", NA, "foobar", "World")))
如果数据框更长(例如,如果它包含几十行),那么 baz
与 foobar
相关联(即,这两个值共享同一行)。
在 R 中是否有视觉上更易于阅读的数据帧硬编码方式?
编辑 1:
为了澄清我的问题,我并不是在寻找一种替代方法来格式化数据框的硬编码(例如通过用空格分隔单词来对齐两行)。相反,我正在寻找的是一种方法,例如,按行指定数据框。
您可以使用 tibble
包中的 frame_data()
命令。
例如:
dat <- frame_data(
~x, ~y, ~z,
"a", 2, 3.6,
"b", 1, 8.5
)
它提供了比默认 data.frame 输入方法 'by column'.
更多 'by row' 的硬编码
另一种方法是使用 read.table(text = "...")
,例如
d <- read.table(text = "Name Result
foo Hello
bar NA
baz foobar
qux World",
header = TRUE,
stringsAsFactors = FALSE)
str(d)
# 'data.frame': 4 obs. of 2 variables:
# $ Name : chr "foo" "bar" "baz" "qux"
# $ Result: chr "Hello" NA "foobar" "World"
readr::read_delim(
' Name | Result
# -------------------
foo | Hello
bar | NA
baz | foobar
qux | World ',
trim_ws = TRUE, comment="#", delim="|")
假设我希望在 R 中对数据帧进行硬编码。
my_df = data.frame(list(Name=c("foo", "bar", "baz", "qux"),
Result=c("Hello", NA, "foobar", "World")))
如果数据框更长(例如,如果它包含几十行),那么 baz
与 foobar
相关联(即,这两个值共享同一行)。
在 R 中是否有视觉上更易于阅读的数据帧硬编码方式?
编辑 1:
为了澄清我的问题,我并不是在寻找一种替代方法来格式化数据框的硬编码(例如通过用空格分隔单词来对齐两行)。相反,我正在寻找的是一种方法,例如,按行指定数据框。
您可以使用 tibble
包中的 frame_data()
命令。
例如:
dat <- frame_data(
~x, ~y, ~z,
"a", 2, 3.6,
"b", 1, 8.5
)
它提供了比默认 data.frame 输入方法 'by column'.
更多 'by row' 的硬编码另一种方法是使用 read.table(text = "...")
,例如
d <- read.table(text = "Name Result
foo Hello
bar NA
baz foobar
qux World",
header = TRUE,
stringsAsFactors = FALSE)
str(d)
# 'data.frame': 4 obs. of 2 variables:
# $ Name : chr "foo" "bar" "baz" "qux"
# $ Result: chr "Hello" NA "foobar" "World"
readr::read_delim(
' Name | Result
# -------------------
foo | Hello
bar | NA
baz | foobar
qux | World ',
trim_ws = TRUE, comment="#", delim="|")