关闭。这个问题是opinion-based .它目前不接受答案。
想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.
6年前关闭。
Improve this question
我一直致力于编写可读的代码和工作风格指南。我理解 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 个字符的限制(除了所有潜在的格式问题)?
最佳答案
首先,我会拆分您匹配的值:
test_vals = c("M. ovipneumoniae by ELISA", "PCR-Mycoplasma ovipneumoniae")
然后,我会按照迈克尔的建议去做:
df$rslt[ test %in% test_vals ] <-
df$result[ test %in% test_vals ]
# or
library(data.table)
setDT(df)[ test %in% test_vals, rslt := result]
关于r 80 个字符的行限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32190272/