Мы можем использовать опцию dimnames
в matrix
, поскольку OP использовал matrix
для создания данных.
data.frame(matrix(1:4, 2, 2, dimnames=list(NULL, c("a", "b"))))
Или
`colnames<-`(data.frame(matrix(1:4, 2, 2)), c('a', 'b'))
: лямбда-выражения, полезные для чего-либо кроме запросов
, выражения Lamba не ничего особенного кроме удобного способа записать 'встроенную' функцию.
, Таким образом, они полезны любое место, Вы хотели немного кода, который можно назвать, как будто это - отдельная функция, но который на самом деле записан в ее вызывающей стороне. (В дополнение к хранению связанного кода в том же месте в файле это также позволяет, Вы, чтобы играть в забавные игры с обзором переменной - видите 'закрытия' для ссылки.)
примером non-query-related использования lamba могло бы быть немного кода, который делает что-то асинхронно, что Вы запускаете с ThreadPool. QueueUserWorkItem. Важный момент - то, что Вы могли также записать этот использующие анонимные делегаты (которые были введением C#2), или просто простая отдельная функция членства класса.
Этот http://blogs.msdn.com/jomo_fisher/archive/2005/09/13/464884.aspx является превосходным пошаговым введением в весь этот материал, который мог бы помочь Вам.
Лямбды приносят функциональное программирование к C#. Они - анонимные функции, которые могут быть переданы как значения определенным другим функциям. Используемый больше всего в LINQ.
Вот изобретенный пример:
List<int> myInts = GetAll();
IEnumerable<int> evenNumbers = myInts.Where(x => x % 2 == 0);
Теперь, когда Вы foreach через evenNumbers lamda
x=> x % 2 == 0
тогда применяетесь как фильтр к myInts.
Они становятся действительно полезными в увеличивающейся удобочитаемости к сложным алгоритмам, которые имели бы многих вложенными ЕСЛИ условные выражения и циклы.
Вот простой пример чего-то прохладного, которое можно сделать с лямбдами:
List<int> myList = new List<int>{ 1, 2, 3, 4, 5, 6, 7, 8, 9 };
myList.RemoveAll(x => x > 5);
//myList now == {1,2,3,4,5}
метод RemoveAll берет предикат (делегат, который берет argurments и возвращает bool), любой, который соответствует ему, удалены. Используя лямбда-выражение делает его более простым, чем фактическое объявление предиката.