我一直致力于为工作编写可读的代码和样式指南。我理解80字符行限制的建议。
偶尔我会写一个很长的代码字符串,如果我坚持80个字符的限制,那么它的可读性就会变得更差。
以下是我如何格式化代码的示例(不符合80个字符,短划线表示字符)
0--------1---------2---------3---------4---------5---------6---------7---------8
df$rslt[df$test == "M. ovipneumoniae by ELISA" |
df$test == "PCR-Mycoplasma ovipneumoniae"] <- df[df$test == "M. ovipneumoniae by ELISA" |
df$test == "PCR-Mycoplasma ovipneumoniae",
"result"]如果我遵循80个字符的限制,我可能会输入如下代码
0--------1---------2---------3---------4---------5---------6---------7---------8
df$rslt[df$test == "M. ovipneumoniae by ELISA" |
df$test == "PCR-Mycoplasma ovipneumoniae"] <- df[df$test ==
"M. ovipneumoniae
by ELISA" |
df$test ==
"PCR-Mycoplasma
ovipneumoniae",
"result"]我发现第一个例子更具可读性。每一个逻辑操作都是一个新的行,读起来很清楚。第二个示例很容易遵循,但是当我达到80个字符的限制时,它就变得复杂了。我可以读取它,但我将字符串分解为多行,将单个逻辑操作分解为多行,等等。
对于更长的字符串,超过80个字符的限制(所有潜在的格式问题除外)是可以接受的吗?
发布于 2015-08-25 03:38:48
首先,我会将您匹配的值拆分出来:
test_vals = c("M. ovipneumoniae by ELISA", "PCR-Mycoplasma ovipneumoniae")然后,我会按照Michael的建议去做:
df$rslt[ test %in% test_vals ] <-
df$result[ test %in% test_vals ]
# or
library(data.table)
setDT(df)[ test %in% test_vals, rslt := result]https://stackoverflow.com/questions/32190272
复制相似问题