str
ucture not str
ing
R中的str()
与Python str()
函数不同,后者将数字转换为字符串.在R中,str()
函数的存在是:
Complexible显示R对象的内部 struct ,诊断功能和替代summary
(在某种程度上,dput
).
这意味着当你做str(min_index)
时,R告诉你min_index
的 struct 是它的变量,存储一个值为2的整数.
与Pythonstr()
等价的R函数将是toString()
,或者可能是as.character()
.然而,总的来说,R对类型的容错程度要比对Python的宽容度更高.paste()
和我能想到的所有其他字符串连接或打印命令将为您将数字转换为字符串,因此您只需执行以下操作:
paste(min_index, "with p-value", df$p_values[min_index])
# [1] "2 with p-value 0.001"
请注意,我删除了空格,默认情况下paste()
加一个空格,但可以通过提供不同的sep
参数或使用paste0()
来更改.
为什么输出顺序看起来颠倒
考虑到这一点,您可能期望输出为"int 2 with p-value num 0.001"
.然而,它是:
int 2
num 0.001
[1] " with p-value "
这是因为str()
打印输出并不返回任何内容:
x <- str(1) # "num 1" is printed
print(x) # NULL
你的命令基本上可以解释为:
str(min_index) # int 2
str(df$p_values[min_index]) # num 0.001
paste(NULL, "with p-value", NULL) # [1] " with p-value "
这就是它按您看到的顺序打印的原因.
关于显示输出的说明
注意,正如Onyambu在 comments 中所说,如果您想显示不带[1]
的输出,您可以使用cat()
函数:
cat(
min_index, "with p-value", df$p_values[min_index],
fill = TRUE
)
# 2 with p-value 0.001
请注意,您需要fill = TRUE
来正确地格式化它,包括在结尾处的一个新行.你也可以看看message()
.