按列值仅从dataframe中选择字符串
目标是基于a列的最大值创建一个c列中字符串值的变量 很简单,但是当我运行下面的代码时,除了灰色外,打印的是索引号和列名按列值仅从dataframe中选择字符串,r,igraph,R,Igraph,目标是基于a列的最大值创建一个c列中字符串值的变量 很简单,但是当我运行下面的代码时,除了灰色外,打印的是索引号和列名 如果希望在链中获得相同的输出,请使用target_vector,并注意stringsAsFactors=FALSE,默认情况下,data.frame参数stringsAsFactors=TRUE,因此它会将任何字符列转换为factor。通过将其设为FALSE,我们可以避免转换为字符的最后一步 您是否需要as.charactertarget[[c]]刚刚尝试过,target[[c
如果希望在链中获得相同的输出,请使用target_vector,并注意stringsAsFactors=FALSE,默认情况下,data.frame参数stringsAsFactors=TRUE,因此它会将任何字符列转换为factor。通过将其设为FALSE,我们可以避免转换为字符的最后一步
您是否需要as.charactertarget[[c]]刚刚尝试过,target[[c]]返回[1]灰色级别:蓝棕色绿色灰色橙色紫色红色黄色是的,因为它是一个因子列,您可能需要as.charactertarget[[c]]和as.charactertarget[[c]]返回[1]灰色级别,这将是一个简单的问题,我想,如果没有外部的c来对它进行矢量化,它是不起作用的。如果你检查相同的,那么它是相同的,因为as.charactertarget[[c]],as.charactertarget[[c]]][1]是真的,因为as.character作用于向量。通过用[]提取列,它是一个向量,您完全正确,可以接受,您可以添加.charactertarget[[c]]作为初始解决方案,并添加tidyverse解决方案
a <- c(1,2,3,4,5,6,7,8)
b <- c("a","b","c","d","e","f","g","h")
c <- c("red", "green", "blue", "brown", "purple", "yellow", "orange", "grey")
df <- data.frame(a,b,c)
target <- df[which.max(df$a),]
print(target)
print(target["c"])
actual_target <- target["c"]
print(actual_target)
Error in delete.vertices(tube_graph, c(target)) :
At iterators.c:759 : Cannot create iterator, invalid vertex id, Invalid vertex id
library(tidyverse)
data.frame(a,b,c, stringsAsFactors = FALSE) %>%
slice(which.max(a)) %>%
pull(c)
#[1] "grey"