我有几列的数据帧,如column1,column2 ... column100。如何仅选择列的子集(例如,不是column1)应返回列column2 ... column100的所有列。
data[[colnames(data) .!= "column1"]])
似乎不起作用。
我不想改变数据帧。我只想选择所有没有特定列名的列,如我的示例所示
正如@Reza Afzalan所说,你要做的是返回一个字符串数组,而DataFrames中的列名是符号。
鉴于朱莉娅没有条件列表理解,我猜你能做的最好的事情就是
data[:, filter(x -> x != :column1, names(df))]
这将为您提供删除了第1列的数据集(不会改变它)。您可以将其扩展为检查名称列表:
data[:, filter(x -> !(x in [:column1,:column2]), names(df))]
colnames(data) .!= "column1"
#=>返回一个bool数组
我认为正确的方法是使用返回所需列名称的过滤器函数
filter(x->x != "column1", colnames(data))
#=>返回一个字符串数组
DataFrame列名称是Symbol数据类型
map(symbol ,str_array_of_filterd_column_names)
#=>返回相同符号的数组